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 :

Affecter un recordset ADODB à un formulaire Access 2010


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 145
    Points
    145
    Par défaut Affecter un recordset ADODB à un formulaire Access 2010
    Bonjour,

    Je sais que le sujet est déjà traité, en particulier sur ce forum, et j'épluche de nombreux articles depuis le début de la matinée sans parvenir à résoudre le problème que je rencontre, alors j'appelle à l'aide!

    Dans une base Access 2010 (.accde) je crée un formulaire sans lui attribuer de source (.recordsource = "").
    Dans l'événement form.open je cherche à affecter à la source de ce formulaire un recordset ADODB que j'ai ouvert sur une requête SQL serveur 2008.

    Je ne reprends pas ici le détail de la création du recordset, je précise simplement qu'il est ouvert et que .LockType = adLockOptimistic et .CursorType = adOpenKeyset. À ce stade la source de données est une table très simple et comportant une clé unique. Ultérieurement - quand ce problème d'affectation de la source sera résolu - la source des données sera une procédure stockée.

    Lorsque je redéfinis la propriété .recordset de mon formulaire j'obtiens une erreur n°7965 "L'objet entré n'est pas une propriété Recordset valide."

    L'affectation du recordset (RS) est faite par l'instruction dans l'événement form.open par l'instruction:
    Je ne parviens pas à résoudre ce problème alors si vous avez des idées n'hésitez pas, merci!

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    Je ne reprends pas ici le détail de la création du recordset, je précise simplement qu'il est ouvert
    ben voyons, comme ça, si une anomalie s'y cache ...
    j'ai trouvé ceci sur le site:
    https://vb.developpez.com/bidou/reco.../?page=exputil
    est-ce ainsi que tu l'as codé ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 870
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 870
    Points : 3 449
    Points
    3 449
    Par défaut
    Bonjour Depite, tee_grandbois,

    .CursorType = adOpenKeyset
    Serait le problème selon ces post:
    https://www.developpez.net/forums/d6...-recorset-ado/
    https://www.developpez.net/forums/d1...ee-sql-server/

    Il faut utiliser "adUseClient"

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 145
    Points
    145
    Par défaut
    Merci à Robert1957 et tee_grandbois pour la pertinence de vos réponses.

    En effet, tout vient des propriétés .LockType, .cursorlocation et .cursortype - qui restent encore assez floues pour moi qui ne suis pas un fan d'adodb.
    L'affectation explicite de ces propriétés m'a permis d'affecter mon recordset à la source du formulaire.

    Je vais encore devoir faire pas mal d'essais pour trouver les bonnes combinaisons selon que je serai en lecture seule ou pas mais l'article référencé par tee_grandbois est tout à fait explicite et me sera très utile.

    Encore merci à tous et d'une manière plus large un grand merci à "développez.com" qui est vraiment un super forum!

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

Discussions similaires

  1. Table et Formulaire Access 2010
    Par flo77600 dans le forum Requêtes
    Réponses: 0
    Dernier message: 14/12/2012, 11h30
  2. Formulaire access 2010 pleine écran
    Par asvin dans le forum IHM
    Réponses: 2
    Dernier message: 30/01/2012, 14h48
  3. [AC-2010] Ouvrir un document Word à partir d'un formulaire Access 2010
    Par Mailgifson dans le forum VBA Access
    Réponses: 16
    Dernier message: 16/11/2010, 21h26
  4. ADODB et formulaire access
    Par lbertin dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/09/2007, 13h49
  5. Requete avec recordset ADODB vb6 et Access 2000 (jet 4.0)
    Par mathieuleclerc dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/09/2006, 10h54

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