Pb sur conception chaine SQL - VB/VBA/VBS - Programmation
MarshPosté le 13-02-2004 à 12:27:24
Voici mon prog. Cependant, une erreur d'exécution '3129' survient "Instruction SQL non valide; 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' ou 'UPDATE' attendus. Or, j'ai bien mon select
Voilà, la fontion créée prend le SQL de la requête "requête1" et le transforme en sql création de table dont le nom est donné par la variable TableVide. Ainsi ma requête1 n'est pas modifiée (ça c'est super!).
Merci de vos conseils ,
Code: Function Replace(strSql As String, chaîne1 As String, chaîne2 As String, chaîne3 as string)
chaîne2 = « Table1 INNER JOIN Table2 ON [Table1].[Nom]=[Table2].[Nom] »
chaîne3 = « WHERE ((([Table2].[Date])=[Date]));”
End Function
Sub essai()
Dim strSql As String Dim DATE_T As Date Dim qdf As DAO.QueryDef Dim TableVide As String Dim chaîne1 As String Dim chaîne2 As String Dim chaîne3 As string
Marsh Posté le 13-02-2004 à 12:27:24
Voici mon prog. Cependant, une erreur d'exécution '3129' survient "Instruction SQL non valide; 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' ou 'UPDATE' attendus. Or, j'ai bien mon select
Voilà, la fontion créée prend le SQL de la requête "requête1" et le transforme en sql création de table dont le nom est donné par la variable TableVide. Ainsi ma requête1 n'est pas modifiée (ça c'est super!).
Merci de vos conseils ,
Code:
Function Replace(strSql As String, chaîne1 As String, chaîne2 As String, chaîne3 as string)
StrSql = " PARAMETERS [date] DateTime; SELECT [Table1].[Prénom], [Table1].[Nom], [Table2].[Adresse], [Table2].[Ville], [Table2].[Date] "
chaîne1 = " INTO " & TableVide & " FROM "
chaîne2 = « Table1 INNER JOIN Table2 ON [Table1].[Nom]=[Table2].[Nom] »
chaîne3 = « WHERE ((([Table2].[Date])=[Date]));”
End Function
Sub essai()
Dim strSql As String
Dim DATE_T As Date
Dim qdf As DAO.QueryDef
Dim TableVide As String
Dim chaîne1 As String
Dim chaîne2 As String
Dim chaîne3 As string
TableVide = "Table_récept"
DoCmd.DeleteObject acQuery, "Requête_Tmp"
'DoCmd.DeleteObject acTable, TableVide
DATE_T = InputBox("date ?" )
Set qdf = CurrentDb.QueryDefs("Requête1" )
strSql = qdf.sql
Set qdf = Nothing
Set qdf = CurrentDb.CreateQueryDef("Requête_Tmp" )
qdf.sql = Replace(strSql, chaîne1, chaîne2, chaîne3)
qdf.Parameters("date" ) = DATE_T
qdf.Execute
Set qdf = Nothing
End Sub