JNTGGL
Messages postés5Date d'inscriptionlundi 14 décembre 2009StatutMembreDernière intervention11 mars 2010
-
10 mars 2010 à 19:01
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
11 mars 2010 à 09:39
Bonsoir,
lors de la conversion d'une base access 2007 en access 2003, ce bout de code ne fonctione plus ?!
Set rstan = db.OpenRecordset("RS_ID_ANA_CRE2")
Le message qui apparait est : "incompatibilite de type".
je precise que la requete RS_ID_ANA_CRE2 fonctionne en manuel dans access 2003.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 10 mars 2010 à 20:06
Salut
De quel type est ton RS_ID_ANA_CRE2 ? Est-ce une table ou bien une requète stockée ?
Si c'est une requète stockée, regarde du côté du mot clé "QueryDef", mais peut-être que DAO (absolète) ne le supporte pas : mieux vaudrait passer à ADO : Les méthodes changent légèrement.
Comment as-tu dimensionné ton object "db" ? DAO ou ADO ?
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 11 mars 2010 à 09:39
Comme je te l'ai dit, DAO est obsolète (abandonné depuis de longues zannées) et, par exemple, les méthodes Find dans les RecordSet fonctionnent mal.
Mieux vaudrait passer à ADO (version 2.8 il me semble).
Les objets sont à peu près les mêmes que sous DAO, seules certaines syntaxes diffèrent, mais rien de bien méchant.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
JNTGGL
Messages postés5Date d'inscriptionlundi 14 décembre 2009StatutMembreDernière intervention11 mars 2010 11 mars 2010 à 08:44
Bonjour Jack et merci pour ta reponse !
RS_ID_ANA_CRE2 est une requete selection, et si par 'stockée' tu veux dire qu elle existe dans le groupe requete, c est bien le cas.
Mon code est le suivant:
Private Sub Commande33_Click()
On Error GoTo Maj_Err
Dim db As Database
Dim rstan As Recordset
DoCmd.SetWarnings False
DoCmd.Echo False, ""
Anc_Valeur = 0 'Mise a zero valeur de la fct utilisée par RC_ECRITGENE_HONMTP
Cpteur = 0 'Mise a zero du cptr dans fct utilisée par RC_ECRITGENE_HONMTP
DoCmd.OpenQuery "RC_ECRITGENE_HONMTP"
MsgBox "Identification des Ecritures comptables terminée !"
Set db = CurrentDb()
MsgBox "base ouverte !"
Set rstan = db.OpenRecordset("RS_ID_ANA_CRE2")
MsgBox "ID SECTIO MQT : OK !"
Do Until rstan.EOF
'vbCrLf = retour chariot dans MsgBox
MsgBox "Section Analytique Manquantes : " & rstan!C_NUM & vbCrLf & "Libellé à saisir, niveau d'analyse et infos libres à vérifier"
rstan.MoveNext
Loop
DoCmd.OpenQuery "RA_COMPTEA2"
MsgBox "sections créées"
etc etc...
Les MsgBox en rouge sont des test que j ai positionnés pour identifier l'origine du problème.
Pour répondre a ta deuxième question, DAO ou ADO, il me semble que c est n'y l'un ni l'autre, en tout cas de manière explicite (je précise ici que je suis totalement autodidacte, et que donc certaine nuances m échappent forcement)
Cela dit, je n arrive pas a comprendre pourquoi ce code fonctionne parfaitement sous Access 2007, et pas 2003 ?