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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Il est arrivé qu’un petit curieux réponde « non » lors de la creation de la table à la question
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
« 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…
merci pour votre aide
Partager