Bonjour,
J'ai défini un formulaire en "formulaires continus" pour avoir une liste d'enregistrements présentés en détail.
Je voudrais maintenant récupérer ces enregistrements et les insérer (par une boucle) dans ma DB _ par un curseur ou par un indice _
J'ai fait un essai en VBA ( je découvre en développant ) en utilisant DoCmd GoTo Record ( acFirst puis acNext ) : il insère le premier et part en erreur au suivant, ce n'est donc pas la bonne méthode. Je sais manipuler les indices et les tableaux en PL/SQL ou en "vieux Cobol" mais en pas VBA. J'ai pioché dans DAO et ADO mais pour moi c'est du Chinois !!!
***********************************
***********************************
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Private Sub cmdCréé_Click() ... je n'écrit que la fin du code je passe les INIT etc ... DoCmd.GoToRecord , , acFirst 'On mouline pour insérer les compétences en rafale dans la table des faits For i = 1 To newcomp 'On prépare les enregistrements vierges (seules les clés sont renseignées) xSIG = Me![Faits_code SIG] xcompetence = Me![Liste_Faits_code competence] xcoev = 0 xevcb = 0 xstatut = 0 MSQL = "INSERT INTO Faits VALUES (" & Chr(34) _ & xSIG & Chr(34) & "," & Chr(34) _ & xcompetence & Chr(34) & "," & Chr(34) _ & xcoev & Chr(34) & "," & Chr(34) _ & xevcb & Chr(34) & "," & Chr(34) _ & xaction & Chr(34) & "," & Chr(34) _ & xcommentaire & Chr(34) & "," & Chr(34) _ & xdtcb & Chr(34) & "," & Chr(34) _ & xdtre & Chr(34) & "," & Chr(34) _ & xstatut & Chr(34) & "," & Chr(34) _ & xtypech & Chr(34) & ");" DoCmd.RunSQL (MSQL) 'On se positionne sur l'enregistrement suivant If i < newcomp Then DoCmd.GoToRecord , , acNext End If Next i Exit_cmdCréé_Click: Exit Sub Err_cmdCréé_Click: MsgBox Err.Description Resume Exit_cmdCréé_Click End Sub
il me faudrait un truc genre
xSIG = Me![Faits_code SIG](i)
xcompetence = Me![Liste_Faits_code competence](i)
pour For i = 1 To newcomp
et Next i
Je sais qu'il existe aussi :
Dim dbs As Database
Dim bzzz As DAO.Recordset
...
ou
Dim cnc As New ADO.Connection
Dim bzzz As New ADO.Recordset
...
mais comme je l'ai dit plus haut, c'est obscur !!!
Merci d'avance
Partager