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 46 47 48 49 50 51 52 53
|
Private Sub Form_Open(Cancel As Integer)
Dim nom As String
Dim ctl As Control
Dim n As Integer
Dim rs As Recordset
'/////////////////////////////////////////////////////
'/////// Supprimer les zones de textes du form ///////
'/////////////////////////////////////////////////////
DoCmd.OpenForm "form", acDesign, , , , acHidden
' On sélectionne toutes les colonnes pour les insérer dans le formulaire
Set rs = CurrentDb.OpenRecordset("SELECT Nom_Colonne FROM T_nom ORDER BY NORDRE;", dbOpenSnapshot)
rs.MoveFirst
'Ajoute les champs dans le formulaire
Do Until rs.EOF
nom = rs![Nom_Colonne]
' --lui affecter une zone de texte et la source
DeleteControl "Ecran_PT_nom", nom
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
'DoCmd.Requery T_nom
DoCmd.Save acForm, "form"
DoCmd.Close acForm, "form"
'/////////////////////////////////////////////////////
'//////// Ajouter les zones de textes du form ////////
'/////////////////////////////////////////////////////
DoCmd.OpenForm "form", acDesign, , , , acHidden
' On sélectionne toutes les colonnes pour les insérer dans le formulaire
Set rs = CurrentDb.OpenRecordset("SELECT Nom_Colonne, NORDRE FROM T_nom ORDER BY ONORDRE;", dbOpenSnapshot)
rs.MoveFirst
'Ajoute les champs dans le formulaire
Do Until rs.EOF
nom = rs![Nom_Colonne]
n = rs![NORDRE]
' --lui affecter une zone de texte, la source et l'ordre d'affichage
Set ctl = CreateControl("form", acTextBox, acDetail, , nom, n)
' --lui affecter un nom
ctl.Name = nom
rs.MoveNext
Loop
rs.Close
DoCmd.Save acForm, "form"
DoCmd.Close acForm, "form"
DoCmd.OpenForm "form", acFormDS
End Sub |
Partager