Bonjour.
Je cherche a recuperer le code d'echeance pour un fournisseur donne.
Dans mon fichier Access j'ai relie a des tables Oracle par ODBC.
Puis, dans une requete Access, je relie les 3 tables et je rajoute mes criteres.
Dans VBA, pour afficher le code echance dans un champ de mon formulaire, j'ouvre la requete Access par ADO :
Le programme ne me trouve aucun enregistrement. Etant donne que je n'ai pas fait de test pour verifier si la table etait vide a l'ouverture, j'ai une erreur qui ressemble a ca (le texte de l'erreur est en polonais) : "la fonction BOF ou EOF retourne une valeur reelle ou l'enregistrement actuel a ete supprime. L'operation demandee exige un enregistrement."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Set oConn = New ADODB.Connection Set oConn = CurrentProject.Connection Set oRS = New ADODB.Recordset oRS.CursorLocation = adUseClient 'Ouverture de la requete Access oRS.Open "select * from [nomrequete]", oConn, adOpenDynamic, adLockOptimistic, adCmdText codeech=ors("code_echeance")
Quand j'ouvre la requete manuellement, elle n'est pas vide.
D'autre part, en utilisant DAO au lieu de ADO, le programme trouve bien un enregistrement dans la requete. ADO de la maniere suivante :
J'ai aussi essaye de ne pas mettre de critere dans la requete Access mais a l'ouverture de la requete par ADO. Meme probleme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 set tb=currentdb.openrecordset("nomrequete",dbopendynaset) codeech=tb!code_echeance
Savez-vous a quoi ca peut etre du ?
Merci.
Cdlt.
Partager