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 :

Différence de résultat entre recordset ADODB et recordset DAO


Sujet :

VBA Access

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut Différence de résultat entre recordset ADODB et recordset DAO
    Bonjour

    j'ai besoin d'utiliser la méthode getString d'un objet recordset ADODB.
    Lorsque j'ouvre mon recordset avec les propriétés suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rsAdo.Open sqlsource, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    le recordset contient 1092 enregistrements.
    Lorsque j'ouvre la même sqlsource avec un recordset DAO, j'ai 1014 enregistrements. Ma requête sqlsource ouverte avec l'éditeur de requête Access me renvoie bien 1014 enregistrements...
    J'ai l'impression que le recordset ADODB n'exécute pas correctement ma requête. Cela peut-il venir du fait que ma requête sqlsource est constituée de requêtes imbriquées (jointure gauche entre 2 requêtes qui sont elles-mêmes des requêtes de requêtes...)
    Du coup, il me fait un mix de résultats je ne comprends pas d'où il sort...
    Est-ce ma connection qui n'est pas correcte ? J'ai essayé en passant par un objet connection qui pointe bien vers ma BD actuelle sans plus de résultats, idem avec d'autres options d'ouverture (readOnly,...)

    Quelqu'un a-t-il déjà eu ce problème ?
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 354
    Points
    34 354
    Par défaut
    salut,
    les 2 parametres que j'utilise jusqu'a present sont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rsAdo.Open sqlsource, CurrentProject.Connection, adOpenDynamic,adLockOptimistic
    je n'ai pas eu de cas de soucis.
    Essaie de voir si en utilisant la meme paire de parametres tu obtiens encore des ecarts.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut
    Non toujours le même problème !!! Je comprends vraiment pas ce qu'il lui arrive.
    ***mode désespérée!!***

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut
    Après investigation, il semble que le problème provienne d'un filtre dans une de mes sous-requête... Lorsque je crée un recordset ADO directement sur cette sous-requête, cela me renvoi 0 enregistrements.
    J'enlève le filtre et là, miracle, il me renvoi tous mes enregistrements...
    Le filtre appliqué est le suivant
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LIST_CONTENT.LIST_NAME Like 'M*'

    quelqu'un a une idée ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Points : 415
    Points
    415
    Par défaut
    Donc pour résumer, le problème vient du fait que ma base Access n'est pas compatible SQL ANSI 92 donc mon recordset ADODB attend une clause LIKE 'M%' et non pas LIKE 'M*'
    En cochant la case et en modifiant ma requête pour mettre LIKE 'M%', cela fonctionne aussi bien en DAO qu'en ADODB

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

Discussions similaires

  1. Différence de résultat entre (avec/sans points d'arrets)
    Par sayfouche dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 06/06/2012, 16h17
  2. [AC-2000] Différence de résultat entre acpreview et Print d'un état
    Par riri2938 dans le forum IHM
    Réponses: 0
    Dernier message: 20/02/2010, 16h50
  3. [Débutant] Différences de résultats entre MATLAB 6.5 et 7.8
    Par Caps59 dans le forum MATLAB
    Réponses: 21
    Dernier message: 16/03/2009, 16h04
  4. Différence de résultat entre MATLAB et Scilab
    Par ABN84 dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/05/2008, 23h53
  5. Différence de résultats entre requêtes SQL et Criteria
    Par titoudemtl dans le forum Hibernate
    Réponses: 3
    Dernier message: 07/08/2006, 10h30

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