Pour ceux que ça peut aider, je vous montre mon code.
Option Compare Database
Private Sub Command1_Click()
Dim sql As String
Dim sqlDeux As String
Dim rst As DAO.Recordset
Dim col As DAO.Recordset
Dim sqlString As String
'Numéro d'importation
Dim No_Importation As Integer
No_Importation = 2
'date et heure table temporaire
sql = "SELECT [Date], [Time] FROM [Log96 - tronc];"
Set rst = CurrentDb.OpenRecordset(sql)
With rst
'traverse les records
Do While Not .EOF
'numéro de colonne
sqlDeux = "SELECT [Numero_colonne] FROM [Importations_Mesures]" & _
" WHERE [Importation] = " & No_Importation & ";"
Set col = CurrentDb.OpenRecordset(sqlDeux)
With col
'traverse les colonnes
Do While Not .EOF
'traitement
'[...]
'next record
.MoveNext 'col
'sql string concact
sqlString = sqlString & "INSERT INTO [Donnees] ([Date], [Heure])" & _
" VALUES (#" & Format(vardate, "Short Date") & "#," & _
" #" & Format(vartime, "Long Time") & "#);"
Loop 'while not .eof
.Close 'col
End With
'next record
.MoveNext 'rst
'Commit sql string
CurrentDb().Execute sqlString
Loop 'while not .eof
.Close 'rst
End With
End Sub
Alors voilà, j'ai simplifié pour ne mettre que l'essentiel. Le fait est que j'aimerais ne pas avoir à faire de requête d'insertion chaque fois que je passe dans ma boucle, mais à la fin complètement. Cette façon me donne une erreur sur la ligne
CurrentDb().Execute sqlString
L'erreur dit: Characters found after end of SQL statement.
J'ai tenté la même chose avec la ligne
DoCmd.RunSQL sqlString
Le résultat est le même!
Donc cela me pousse a croire qu'il est impossible de faire ce que je désire. Y a-t-il un autre moyen de faire? voilà ma question.
J'accepte les réponses négatives! Je veux simplement savoir si c'est possible ou non.
Merci!