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

VBA Access Discussion :

Variable non définie: dbOpenDynaset


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 175
    Par défaut Variable non définie: dbOpenDynaset
    Bonjour,

    Je rencontre un souci au niveau de l'execution de mon code VBA.
    J'ai un formulaire sur lequel j'ai une zone de liste déroulante, avec dedans une liste de nom (nommée Nom_Prenom). Je souhaite que lorque l'on choisi un nom dans la liste, les informations concernant cette personne s'affiche.
    Mes données sont issues de la table "Op". Les données que je souhaite afficher sont des text box (ici nommées service, emploi et type_contrat) et font partie du même formulaire.
    La zone de liste déroulante a pour code source la table "Op" qui a pour 1er champ le numéro du client et pour 2iéme champ le nom.
    La zone de liste à comme propriétés:
    nbre de colonnes:2
    colonne liée 2:
    largeur colonne 0;3

    Voici le code que j'ai affecté à la zone de liste déroulante:

    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
    Private Sub Nom_Prenom_Click()
    Dim SQL As String
    Dim rs As Recordset
    Dim NomRecup As Integer
     
    If Nom_Prenom.Value <> Empty Then
         NomRecup = Nom_Prenom.Value
     
         'création d'une requete pour aller chercher les données que l'ont récupère dans un recordset
         SQL = "SELECT * FROM Op WHERE Numero = " & NomRecup & ";"
         Set rs = Application.CurrentDb.OpenRecordset(SQL, dbOpenDynaset)
     
         Service = rs.Fields("Service")
         Emploi = rs.Fields("Emploi")
         Type_contrat = rs.Fields("Type_contrat")
         '...
     
      rs.Close
     
         Service.Visible = True
         Emploi.Visible = True
         Type_contrat.Visible = True
     
     
    End If
    Lors de l'execution j'ai le message d'erreur suivant: "Variable non définie" et le compliateur pointe sur: "dbOpenDynaset".


    A quoi est du cette erreur??
    Merci d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Par défaut
    Bonjour,

    A priori, il te manque une référence.
    Pour vérifier, tu ouvres un module, tu cliques sur outil/références et tu vérifie que "Microsoft Access x.x Object library" est bien coché.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Par défaut
    Salut,

    Teste le contenu de NomRecup avec avant le

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Par défaut
    bonjour,

    Je pense que pour la combo Nom_Prenom il faudrait:
    Colonne lié : 1

    Car après tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomRecup = Nom_Prenom.Value
    (et NomRecup est definie en Integer)

    et puis la condition de la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "SELECT * FROM Op WHERE Numero = " & NomRecup & ";"
    est sur un champ numérique.


    Cdlt.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 175
    Par défaut
    La référence "Microsoft Access x.x Object Library" est bien coché.
    J'ai modifié un peu mon code:
    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
    Option Compare Database
    Option Explicit
    
    Private Sub Nom_Prenom_Click()
    Dim SQL As String
    Dim rs As Recordset
    Dim NomRecup As String
    
    If Nom_Prenom.Value <> Empty Then
         NomRecup = Nom_Prenom.Value
     
         'création d'une requete pour aller chercher les données que l'ont récupère dans un recordset
         SQL = "SELECT * FROM Op WHERE Nom_Prenom = " & NomRecup & ";"
        Set rs = Application.CurrentDb.OpenRecordset(SQL, dbOpenDynaset)
      
         Service = rs.Fields("Service")
         Emploi = rs.Fields("Emploi")
         Type_contrat = rs.Fields("Type_contrat")
         '...
     
      rs.Close
     
         Service.Visible = True
         Emploi.Visible = True
         Type_contrat.Visible = True
       
    End If
    End Sub
    Lorsque je rajoute en plus cela me renvoi bien le nom et prénom de la personne sélectionée...
    Mais j'ai toujours le même message d'erreur...

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Par défaut
    Le message d'erreur t'indiques que la constante dbOpenDynaset, n'est pas reconnue.
    Il doit donc te manquer une référence.

    Après vérification ce doit être a référence Microsoft DAO x.x..

  7. #7
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Par défaut
    NomRecup est une chaine, je pense qu'il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT * FROM Op WHERE Nom_Prenom = """ & NomRecup & """;"

    Cdlt.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Par défaut
    plutôt d'accord avec Alain R...

    Pour la réf, vérifie quand même mais je parie qu'elle est cochée...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Décoches "Microsoft Access x.x Object Library" et coches bien la "Microsoft DAO 3.6 ...".

    Je parie que la première est placée avant la deuxième dans la liste des références.

    Lorsque tu déclares
    Tu utilises dans ce cas la première référence, et donc le OpentRecordset n'existe pas.

    Donc :
    soit tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim rs As DAO.Recordset
    soit tu décoches la première référence.

    Starec

  10. #10
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 175
    Par défaut
    Bonjour,

    La référence: "Microsoft DAO 3.6 ...", ne figure pas dans ma liste...Est-ce normal?
    Sinon j'ai modifié le code SQL comme indiqué ci-dessus.
    Merci.

Discussions similaires

  1. Variable non définie
    Par philippef dans le forum Langage
    Réponses: 1
    Dernier message: 12/09/2007, 14h34
  2. Réponses: 5
    Dernier message: 28/08/2007, 11h42
  3. [SQL] Problème de variable non définies
    Par micka39 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 01/05/2007, 23h10
  4. Réponses: 12
    Dernier message: 10/05/2006, 14h02
  5. Problème de variable non définie
    Par Mimi Bulles dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2006, 09h03

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