Exécuter une Requête SQL dans VBA
Bonjour,
Dans un formulaire j’ai crée un bouton qui lance ds un 1er temps une requête de creation de table puis une requête de mise a jour comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| 'bouton requête mise à jour et creation table
Private Sub CommandeMAJ_Click()
On Error GoTo Err_CommandeMAJ_Click
If IsNull(Me.DateA) Then
MsgBox "Entrez une Date"
Else
'creation de la table "R4-Table"
Dim CreaTableR4 As String
CreaTableR4 = "R4-Extraction Table"
DoCmd.OpenQuery CreaTableR4, acNormal, acEdit
'Mise a jour ds la foulée de la table TDATA
Dim stDocName As String
stDocName = "R1-MAJ"
DoCmd.OpenQuery stDocName, acNormal, acEdit
End If
Exit_CommandeMAJ_Click:
Exit Sub
Err_CommandeMAJ_Click:
MsgBox Err.Description
Resume Exit_CommandeMAJ_Click
End Sub |
Je voudrais écrire directement le SQL de la requête mise à jour "R1-MAJ" ds le code ci-dessus pour des raisons de sécurité dont voici le code
Code:
1 2 3 4 5 6
| UPDATE [R4-Table] LEFT JOIN TDATA ON ([R4-Table].Ident = TDATA.Ident)
AND ([R4-Table].dateFormulaire = TDATA.Date)
SET TDATA.[champ1] = [R4-Table]!valeur1,
TDATA.[champ2] = [R4-Table]!valeur2,
TDATA.[champ3] = [R4-Table]!valeur3,
TDATA.DatMaj = Now(); |
Il est arrivé qu’un petit curieux réponde « non » lors de la creation de la table à la question
« vous allez coller x lignes ds la nelle table
(A ce moment il n’y a pas eu de création de la table [R4-Table].)
Puis d’aller visualiser la requête "R1-MAJ" en faisant glisser ou redimensionner par exemple une table de cette requête en mode creation puis d’enregistrer la modif de la structure
Au lancement suivant :creation de table ok 20 lignes environ ok:)
Au lancement de la 2eme phase MAJ ,mise a jour de plusieurs millier de lignes ….:(
Table TDATA modifiée complètement
En effet les 2 jointures avaient disparues suite à cette manip
C’est pourquoi je souhaiterais écrire cette 2eme phase en VBA mais c’est une autre histoire…:roll:
merci pour votre aide