Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser le résultat d'une requête sans l'afficher

1 réponse
Avatar
steph05
Bonjour,

J'ai fait une requ=EAte dont le r=E9sultat est une liste de valeurs. Je
veux utiliser chacune de ces valeurs comme param=E8tre pour ex=E9cuter une
autre requ=EAte. Mais je ne veux pas que le r=E9sultat de la premi=E8re
requ=EAte s'affiche. De plus, =E0 chaque fois, =E7a m'ouvre une bo=EEte de
dialogue o=F9 je dois saisir le param=E8tre.
Comment puis-je faire ?

Mon code est le suivant:

Private Sub cmdBanqueDiff_Click()

DoCmd.OpenQuery "RBanqueDiff", acViewNormal, acEdit

Dim mabase As DAO.database
Dim lerecordset As DAO.Recordset

Set mabase =3D CurrentDb
Set lerecordset =3D mabase.OpenRecordset("RBanqueDiff")

lerecordset.MoveFirst

Do While Not lerecordset.EOF()
MonNomBanque =3D lerecordset![NomBanque]

DoCmd.SetWarnings False
machaineSQL =3D "SELECT TCartesBINNom.NumCarte INTO TBinNom2 FROM
TCartesBINNom WHERE (((TCartesBINNom.NomBanque)=3D" & MonNomBanque &
"));"
DoCmd.RunSQL machaineSQL
DoCmd.SetWarnings True

DoCmd.TransferText acExportFixed, "Export", "TBinNom2", MonNomBanque &
"=2Etxt", False

lerecordset.MoveNext
Loop

End Sub

Merci

1 réponse

Avatar
Argyronet
Bonjour,

Je vous recommande la lecture de ce tutoriel :
http://warin.developpez.com/access/dao/
Il vous permettra de comprendre la philosophie de DAO.
Par exemple, il est inutile de faire un OpenQuery avec DAO comme vous l'avez
écrit.
De plus, votre recordset n'est pas fermé ni vidé de la mémoire ; à terme,
sur un usage intensif, cela peut avoir des répercutions négatives sur le
comportement de votre application.
Là, j'ai le sentiment que vous êtes un peu perdu, mais rassurez-vous, vous
allez y arriver... Nous ferons tout pour.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/



Bonjour,

J'ai fait une requête dont le résultat est une liste de valeurs. Je
veux utiliser chacune de ces valeurs comme paramètre pour exécuter une
autre requête. Mais je ne veux pas que le résultat de la première
requête s'affiche. De plus, à chaque fois, ça m'ouvre une boîte de
dialogue où je dois saisir le paramètre.
Comment puis-je faire ?

Mon code est le suivant:

Private Sub cmdBanqueDiff_Click()

DoCmd.OpenQuery "RBanqueDiff", acViewNormal, acEdit

Dim mabase As DAO.database
Dim lerecordset As DAO.Recordset

Set mabase = CurrentDb
Set lerecordset = mabase.OpenRecordset("RBanqueDiff")

lerecordset.MoveFirst

Do While Not lerecordset.EOF()
MonNomBanque = lerecordset![NomBanque]

DoCmd.SetWarnings False
machaineSQL = "SELECT TCartesBINNom.NumCarte INTO TBinNom2 FROM
TCartesBINNom WHERE (((TCartesBINNom.NomBanque)=" & MonNomBanque &
"));"
DoCmd.RunSQL machaineSQL
DoCmd.SetWarnings True

DoCmd.TransferText acExportFixed, "Export", "TBinNom2", MonNomBanque &
".txt", False

lerecordset.MoveNext
Loop

End Sub

Merci