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 :

Recordset et DAO


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Par défaut Recordset et DAO
    Bonjour,

    Vous trouverez ci-dessous un recordset. Lors de la compilation, le message d'erreur suivant apparait:

    Erreur de compilation: Incompatibilité de type

    Et il me surligne "OpenRecordset" sur la ligne 7.

    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
    Sub LesZones()
    Dim D As DAO.Recordset
    Dim bd2 As DAO.Database
    Dim Zone As DAO.TableDef
    Dim s As String
    Set bd2 = Currentbd2
    Set D = bd2.OpenRecordset(Zone, bd2OpenDynaset)
    s = ""
    D.MoveFirst
    Do Until D.EOF
    s = s & D!Zone
    D.MoveNext
    Loop
    D.Close: Set D = Nothing
    MsgBox (s)
    End Sub
    Merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Bonjour
    Je pense qu'un bon tuto ne serait pas inutile (surtout la partie 5)
    http://warin.developpez.com/access/dao/

    Bonne lecture

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Par défaut
    Je viens de le lire, mais çà ne m'a pas aidé à résoudre mon problème.

    Merci quand même!

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Re
    Si tu l'as lu, tu aurais du corrigé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set bd2 = Currentbd2
    Set D = bd2.OpenRecordset(Zone, bd2OpenDynaset)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set bd2 = CurrentDb
    Set D = bd2.OpenRecordset(NomDeTable, dbOpenDynaset)
    Ta variable Zone ne doit être rien d'autre qu'une chaine de type Texte (String) et surtout pas TableDef. Cette chaine peut contenir, soit le nom d'une table, soit l'expression SQL d'une requête.
    Bonne continuation

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Par défaut
    Merci pour ta réponse.
    Ce changement entraine une nouvelle erreur !

    Ligne 6 : "Erreur d'exécution 424 : Objet requis"

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Re
    Dans le code que je t'ai donné, as tu bien remplacé NomDeTable par le nom de la table que tu veux lire (exemple "Clients") ou par une expression SQL (exemple "SELECT * FROM CLIENTS") ????


    PS: tu risques d'avoir un autre problème plus loin s = s & D!Zone. Cette instruction ne veut rien dire. On utilise D![NomDuChamp] (exemple : D![nom_client])

    Je te conseille de relire les exemples du tutos.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 115
    Par défaut
    Re,

    Merci pour l'aide que tu m'apportes.

    Mais j'ai toujours la même erreur: "Objet requis" (Ligne 6)

    Sub LesZones()
    Dim D As DAO.Recordset
    Dim bd2 As DAO.Database
    Dim Zone As DAO.TableDef
    Dim s As String
    Set bd2 = Currentbd2
    Set D = bd2.OpenRecordset("SELECT * FROM prout", bd2OpenDynaset)
    s = ""
    D.MoveFirst
    Do Until D.EOF
    s = D![prout]
    D.MoveNext
    Loop
    D.Close: Set D = Nothing
    MsgBox (s)
    End Sub

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2009, 10h49
  2. [VBA] ADO & DAO --> Compréhension Recordset ... Probl
    Par snoopy69 dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/10/2005, 15h27
  3. Manipulation de Recordset avec DAO
    Par Sinclar dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/09/2005, 20h19
  4. Bookmark de Form et de DAO.Recordset
    Par CRUSOE13 dans le forum Access
    Réponses: 4
    Dernier message: 23/06/2005, 11h27
  5. Précisions sur les recordset DAO
    Par Igricheff dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/01/2005, 17h16

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