IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Reference manquante & type non defini [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut Reference manquante & type non defini
    Bonjour,

    Un collègue m'a envoyé une macro qui me donne référence manquante
    Microsof ActiveX Data Objects 6.0 Library
    lors de l'accès à la séquence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim objMyConn As ADODB.Connection
    .

    D'abord cela m'étonne, puisque j'utilise cette définition dans une autre macro sans problème. Mais peut-être que le compilateur ne pointe pas sur la bonne ligne d'erreur.

    Bon, j'ai désactivé cet ActiveX, mais maintenant j'ai une erreur de compilation
    "Type defini par l'utilisateur non défini".

    J'ai cherché quelques posts sur ce genre d'erreur mais n'y ai pas compris grand chose.
    Merci pour vos conseils.
    Denis

    Voici le code complet qui va lire une database.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    Sub EnterItemID()
    '
    ' EnterItemID Macro
    '
    ' to be sure first clean all data
        Cells.Select
        Range("B2:Z65536").Select
        Selection.Clear
    If ActiveSheet.FilterMode Then
        ActiveSheet.ShowAllData
    End If
     
    ' Item Id
    Dim Title0
    Dim itemnr As String
    Dim Msg, Style, Title, Response, MyString
     
    Msg = "Item ID?"
    Title0 = "Enter Reel/Item"
    itemnr = InputBox(Msg, Title0)
     
     
    ' two options: either only standard BIN either also with Machine input output machines BIN
    Msg = "Click  YES  **L I V E**   (Or NO for TEST)"  ' Define the message.
    Style = vbYesNo + vbCritical + vbDefaultButton2     ' Define the button.
    Title = "Select System (Live or Test)"              ' Define the title.
     
    ' Show the next message (not used at the moment).
     Response = MsgBox(Msg, Style, Title)
     If Response = vbYes Then    ' For the YES option
         MyString = "Yes"        ' Set the action
     Else                        ' For the NO option
         MyString = "No"         ' Set the  action
     End If
     
    'Declare variables'
         Dim objMyConn As ADODB.Connection
         Dim objMyCmd As ADODB.Command
         Dim objMyRecordset As ADODB.Recordset
     
         Set objMyConn = New ADODB.Connection
         Set objMyCmd = New ADODB.Command
         Set objMyRecordset = New ADODB.Recordset
     
    'Open Connection'
     If MyString = "Yes" Then    ' For the YES option read LIVE DB
            objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=*********;Initial Catalogue=*****;User ID=*****;Password=*****;"
     Else                        ' For the NO option read TEST DB
            objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=*****;Initial Catalogue=*****;User ID=*****;Password=*****;"
     End If
     
     objMyConn.Open
     
    'Set and Excecute SQL Command'
     
     Set objMyCmd.ActiveConnection = objMyConn
     objMyCmd.CommandText = "SELECT zmh.LotNo, zlnc.String02, pr.ProductNo, wh.Location, zmh.Quantity, zmh.UomCode, zmh.InventoryStatus, " & _
                          "zmh.ReasonCode, zmh.CreatedOn, zmh.CreatedBy, zmh.MovementType, zmh.Module, zmh.ActionType, " & _
                          "zmh.Consignment " & _
    "FROM         [*****].[dbo].[Z_MOVEMENT_HISTORY] AS zmh INNER JOIN " & _
                          "[*****].[dbo].[WAREHOUSE_LOCATION] AS wh ON wh.ID = zmh.WarehouseLocationID INNER JOIN " & _
                          "[*****].[dbo].[PRODUCT] AS pr ON zmh.ProductID = pr.ID INNER JOIN " & _
                          "[*****].[dbo].[z_lot_no_characteristic] AS zlnc ON zlnc.LotNo = zmh.LotNo " & _
    "WHERE     zmh.lotno = '" & itemnr & "' "
     
    ' Previously used but can select too much  -->  "WHERE     zmh.LotNo like '%" & itemnr & "%' "
     
    objMyCmd.CommandType = adCmdText
     
    'Open Recordset'
         Set objMyRecordset.Source = objMyCmd
         objMyRecordset.Open
         Range("b2").Select
         ActiveSheet.Range("b2").CopyFromRecordset objMyRecordset
     
    End Sub

  2. #2
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Effectivement il doit y avoir une référence manquante. Quand c'est le cas le compilateur plante assez aléatoirement. Va voir la liste des références cochées dans l'éditeur VBA/Outils/Références.

  3. #3
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut Les références activées OK
    Merci, grâce à ta demande je suis retourné dans mes références

    et il y avait une autre version
    Microsof ActiveX Data Objects 6.1 Library

    J'ai activé la
    Microsof ActiveX Data Objects 6.0 Library
    et ça marche.

    MERCI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] message d'erreur d'une reference non definie
    Par choupinou22 dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/06/2013, 21h41
  2. [AC-2007] Type non defini
    Par Donnit dans le forum VBA Access
    Réponses: 12
    Dernier message: 03/06/2011, 11h59
  3. type non defini : Outlook.Application
    Par guaguanco dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/06/2010, 10h42
  4. reference d'un type enum non reconnue
    Par al3alwa dans le forum Langage
    Réponses: 6
    Dernier message: 26/02/2008, 11h44
  5. Réponses: 10
    Dernier message: 23/10/2007, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo