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
|
..
Call AjouRecodForm(Me, "TProgramme")
Procédure du module standard :
Public Sub AjouRecodForm(frm As Form, nomTable As String)
' """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' le frm est un formulaire indépendant (sans source de données)
' mais les zones de texte ont exactement les mêmes noms que les
' champs de la table fournis par la procédure appelante.
' """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Dim mabd As DAO.Database
Dim Rst As DAO.Recordset
Dim ctrl As Control
Dim sNomChamp, sAutreRst As String
Dim sSQL As String
Set mabd = CurrentDb
sSQL = "Select * From " & nomTable ' le nom de la table est donnée par le procédure appelante
Set Rst = mabd.OpenRecordset(sSQL, dbOpenDynaset)
Rst.MoveLast
' """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Ajout d'un nouveau enregistrement à partir du formulaire
' """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Rst.AddNew
For Each ctrl In frm.Controls
sNomChamp = ""
If ctrl.ControlType = acTextBox Then
sNomChamp = ctrl.Name ' je récupère le nom du champ à partir du nom de la zone texte
sAutreRst = "Rst!" & sNomChamp ' là je reconstruit le nom complet du rst
Debug.Print sAutreRst & " a pour valeur " & ctrl.Value 'affiche tout nickel
sAutreRst = ctrl.Value 'là, le problème écrit uniquement un zéro dans ma table
End If
Next ctrl
Rst.Update
Rst.Close
End Sub |
Partager