Requete ok mais recordset vide [Acc 2000] - VB/VBA/VBS - Programmation
Marsh Posté le 21-12-2009 à 15:30:22
Cette façon de faire me parait bizarre.
Personnellement, j'utilise OpenrRecordSet() en indiquant dans le premier paramètre une vraie requête ("select ..." ou une variable contenant ce select), et non pas en indiquant le nom d'une requête stockée dans la base.
Par exemple :
Dim SQL_ligne As String |
Pour utiliser une requête stockée en base, il me semble qu'il faut procéder en utilisant QueryDefs(), Voici un exemple trouvé sur internet :
Set db = CurrentDb |
Marsh Posté le 21-12-2009 à 17:59:22
ah, pourtant ca fonctionne plutot pas mal d'habitude.
C'est la seule qui ne veut pas fonctionner, pour une raison que j'ignore :-/
Mais effectivement, je suis passé avec les querydefs et ca marche.
Maintenant, si quelqu'un à une réponse sur le pourquoi du comment, j'suis preneur
Marsh Posté le 21-12-2009 à 18:50:30
Peut être que le symbole de commentaire " ' " fout la merde;
olivthill l'utilise différemment de toi en tout cas.
-> rec.Filter = "Num_Contrat=" & "'" & Trim(txtNumContrat) & "'"
?
Marsh Posté le 21-12-2009 à 21:34:40
ben normalement, ca devrait rien changer ?
il sera toujours collé au =, et juste avant la valeur non?
ou alors je vois pas un truc lol
Marsh Posté le 22-12-2009 à 01:24:22
Bon d'apres http://bytes.com/topic/access/answ [...] -recordset il faudrait que tu ouvre un autre recordset pour voir les resultats!
Edit: ben tu as l'air de le faire pourtant!
Marsh Posté le 22-12-2009 à 09:57:33
oui, c'est ce que j'ai fait.
Il me semble qu'en reutilisant le meme, ca devrait fonctionner aussi, mais dans le doute j'ai preferé séparer les deux.
Marsh Posté le 21-12-2009 à 13:34:06
Bonjour bonjour,
depuis qq heures maintenant, je m'arrache les cheveux sur un problème que je ne comprends pas.
J'ai une requete de sélection, "qryGet_blabla", plus simple c'est pas possible.
Ca prend l'ensemble des champs d'une table A.
Quand je l'execute seule, (en double cliquant dessus), pas de soucis elle me retourne bien un résultat.
Maintenant, je souhaiterais utiliser cette requete en vba, pour faire diverses opérations, notamment la filtrer
Je fais donc :
Toutes les variables utilisées sont bien déclarées, pas de soucis pour ca (db et recordset).
txtNumContrat n'est pas null.
Je sais que le fait de créer 2 recordsets pour ca n'est pas optimisé, mais j'ai cherché à différencier au max pour voir si l'erreur venait pas de là.
Donc, le problème est :
mon rec2 est vide, du coup la suite du traitement plante.
J'ai donc cherché pour voir si mon filtre était bien formé, apparemment oui. Donc je comprenais pas.
J'ai donc placé des espions sur les 2 recordsets à l'éxecution, et je me suis aperçu que rec était tout simplement vide (ce que j'ai vu aussi en passant sur le test rec.EOF)
Ma question est donc:
pourquoi la requete en elle même fonctionne bien (et retourne une ligne), mais en l'ouvrant en vba, plus rien :-/
Quelqu'un aurait une idée?