Stocker résultat d'une requête dans une variable (débutant)

Résolu
Laurent116 Messages postés 5 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 8 septembre 2004 - 3 août 2004 à 17:18
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 - 3 août 2004 à 17:55
bonjour, je debute en VBA.

j'ai un probleme avec cette ligne que je retrouve souvent dans les posts mais sous de multiples formes:

rst.Open SQL, Cnx, adOpenDynamic, adLockOptimistic, adCmdText

Ce que je voudrais faire c'est stocker le résultat d'une requete dans une variable et utiliser cette variable dans une boucle, en utilisant l'objet recordset.
Mais ca peche au niveau de la connexion à une BD

Mon code:

Private Sub ImportExcel_Click()

Dim Cnx As New ADODB.Connection
Dim rst As ADODB.Recordset
Dim dbs As Database 'ce type n'est pas reconnu??
Dim SQL As String

'Declaration du provider de base de donnees
Cnx.Provider = "Microsoft.Jet.Oledb.4.0"
'Declaration du chemin d'acces a la base de donnees
Cnx.ConnectionString = "S:\mabase.mdb"
'Ouverture de la base
Cnx.Open

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open SQL, Cnx, adOpenDynamic, adLockOptimistic, adCmdText

Do Until rst.EOF

SQL = "select chemin FROM tab_ref" & ";" 'chemin est un champ de tab_ref
'(WHERE rst = current rst est sous entendu?)
DoCmd.DeleteObject acTable, SQL 'j'efface la table deja existante
'Ici je suis censé créer une table portant le nom SQLqui est aussi le chemin SQL.xls
DoCmd.TransferSpreadsheet acImport, , SQL, "S:" & SQL & ".xls", 0

rst.MoveNext
Loop

End Sub

Merci de votre aide

1 réponse

cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
3 août 2004 à 17:55
Avant rst.Open SQL il faut assigner à SQL la première requete

ex :

SQL = "select chemin FROM tab_ref"
rst.Open SQL, Cnx, adOpenDynamic, adLockOptimistic, adCmdText

Do Until rst.EOF

SQL = "select chemin FROM tab_ref" & ";"
rst.Requery

Qui s'y frotte, s'y pique .
3
Rejoignez-nous