Forum Clubic

[ACCESS] Recordset de Requete - (suite petite question)

:whistle:

Je viens de me rendre compte que le problème venait du recordset :
si je mets un recordset d’une table ca marche sans souci, par contre si j’essai de faire un recordset d’une requête, c’est erreur à chaque fois.
Pourtant je viens de visiter une paire de sites ou l’on dit bien que c’est possible.

Si quelqu’un peut me dire comment faire un recordset sur une requete ca serait top canon !! :sol:
merci

hello, tu ne voudrrais pas mettre ton code, histoire qu’on voit un peu ce que tu veux faire et comment tu as essayé de le faire ??

ca serai plus simple pour t’aider

:hello:

Pas de prob !

Alors si tu veux j’avais mis :

Dim RstEssai As Recordset
Set RstEssai = CurrentDb.OpenRecordset("REssai")
RstEssai.MoveFirst

En erreur il me disait qu’il y avait trop peu de paramètres.
J’ai trouvé sur un autre forum, un mec qui avait le même problème et donc ca viendrait du fait que pour vba ma requête n’est pas une requête (quelque chose le gêne dedans). Donc j’ai suivi les indications (faire la requête en sql) et j’ai fait ceci :

[b]Dim RequeteEssai As String

RequeteEssai = “SELECT TSmCasier.NumSerieMoule, TSmCasier.Casier1, TSmCasier.Casier2, TSmCasier.Casier3, TSmCasier.Casier4, TSmCasier.Casier5, TSmCasier.Casier6, TSerieMoule.RefCom, TSerieMoule.Usine, TSerieMoule.Procede, TSerieMoule.NumSerieMoule FROM TSmCasier, TSerieMoule WHERE TSerieMoule.RefCom = ‘forms![FChoixSerieARanger]![RefCom]’ AND TSerieMoule.Usine = ‘forms![FChoixSerieARanger]![Usine]’ AND TSerieMoule.Procede = ‘forms![FChoixSerieARanger]![Procede]’ AND TSerieMoule.NumSerieMoule <> ‘forms![FChoixSerieARanger]![NumSerieMoule]’ ORDER BY TSmCasier.NumSerieMoule”[/b]

C’est de la requête bien compliquée …

Set db = CurrentDb
Set RstEssai = db.OpenRecordset(RequeteEssai)
RstEssai.MoveFirst

Je n’ai plus la même erreur, maintenant il me dit que j’ai pas d’enregistrement.
Pour vérifier, j’ai gardé ma requête précedente (faite dans access avec l’assistant) qui est celle dans la laquelle je voudrais pouvoir aller chercher des enregistrements. En fait j’ai 3 enregistrements. Donc ca veut surement dire que c’est mon sql qui n’est pas bon… Je suis pas sure du tout de mon where.

En fait, en écrivant
WHERE TSerieMoule.RefCom = ‘forms![FChoixSerieARanger]![RefCom]’ AND TSerieMoule.Usine = ‘forms![FChoixSerieARanger]![Usine]’ AND TSerieMoule.Procede = ‘forms![FChoixSerieARanger]![Procede]’ AND TSerieMoule.NumSerieMoule <> ‘forms![FChoixSerieARanger]![NumSerieMoule]’ ORDER BY TSmCasier.NumSerieMoule"

Je voudrais selectionner dans ma requete que les NumSerieMoule qui ont la même RefCom, la même Usine, le même procédé sans reprendre la série que je traite en ce moment.

Je sais pas si j’ai été très clair, c un peu chaud de réussir à expliquer à l’écrit ce que je veux !! :MDR

Merci !!!!
:slight_smile:

Hello, est ce que tu pourrais changer le titre de ton sujet afin qu’il soit plus explicite (parce que bon ACCESS, c’est large) en mettant la description du sujet avec le titre.

Genre [access] Recorset de requête (suite petite question)

Merci.

Pas de problème !
Je suis nouvelle alors je connais pas encore tous les trucs !

salut :hello:

http://warin.developpez.com/TutorielDAO/?page=partie_5#L5.2

Déjà un petit cours sur la syntaxe devrait corriger quelques problèmes

Déjà tu pourras voir que un recordset se défini par
Dim RstEssai As DAO.Recordset

Je sais que ca se fait comme ca, mais si je le mets il me mets l’érreur “incompatibilité de type”, j’ai eu le cas déjà dans un autre formulaire et le ca marche si je ne le mets pas.