Je travaillais sur une boîte de dialogue dans Access qui avait essentiellement cette fonction. Je voulais qu'un utilisateur sélectionne une table à partir d'une zone de liste déroulante et qu'il change ensuite la requête pour créer une vue sélective des informations nécessaires. Voici le code de la boîte de dialogueModification de la clause From basée sur la valeur ComboBox
Private Sub cmdOK_Click()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim strSQL As String
Set db = CurrentDb
Set qdf = db.QueryDefs("qryPendingQS")
strSQL = "SELECT [Event Start Date] AS [Event Date], [PO Sent _Date] AS [PO Sent Date], [Brand Name] AS Vendor, PO, [Units _Sold] AS [Units Sold], [Routing Date/Time EST] AS Shipped, [Date and _Time of Arrival] AS ETA, [Department Name] AS Category " & _
"FROM Me.cbotable.Value " & _
"WHERE table3 ='" & Me.cbotable.Value & "';"
qdf.SQL = strSQL
DoCmd.OpenQuery "qryPendingQS"
DoCmd.Close acForm, Me.Name
Set qdf = Nothing
Set db = Nothing
End Sub
Les choses sont très bien pour la plupart, mais le problème se pose dans cette partie de la déclaration. Ceci est le résultat d'une tentative précédente mais je suis conscient que vous ne pouvez pas modifier les tables basées sur une clause WHERE. Donc, ma question est, comment puis-je changer la FROM dynamique en fonction de ce qui est sélectionné dans la liste déroulante
Voici comment le code SQL ressemble lorsque la requête tente d'exécuter:
SELECT [Event Start Date] AS [Event Date], [PO Sent _Date] AS [PO Sent Date], [Brand Name] AS Vendor, PO, [Units _Sold] AS [Units Sold], [Routing Date/Time EST] AS Shipped, [Date and _Time of Arrival] AS ETA, [Department Name] AS Category
FROM table3
WHERE table3 ='QS Log';
Que se passe-t-il avec votre code? Y a-t-il un message d'erreur? – HansUp
@HansUp L'erreur survient quand il essaie d'exécuter le code 'DoCmd.OpenQuery "qryPendingQS"' Parce que vous ne pouvez pas changer une valeur FROM via une instruction WHERE. –