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 54 55
| Sub test()
Dim i As Integer, ligne As Integer, colonne As Integer, j As Integer
Dim frmName As String
Dim t As DAO.Recordset
Dim ctl As Control
Dim Cbbx As ComboBox
frmName = "GPE"
' --suppression de tous les contrôles avant de les créer de nouveau
'For Each ctl In Form_GPE.ssfrmGPE.Controls
' DeleteControl "Form_GPE.ssfrmGPE", ctl.Name
'Next ctl
i = 0
'Résultat de la requête permettant de trouver le nombre d'attributs:
j = DCount("IDFamille", "AttributsFamille", "IDfamille =" + CodeFamille)
'on ferme le sous-formulaire
Form_GPE.ssfrmGPE.SourceObject = ""
'on le rouvre en mode création et caché
DoCmd.OpenForm frmName, acDesign, , , , acHidden
Do While i <> j
Dim ReqValue As String
Dim IdAttrib As String
Set t = CurrentDb.OpenRecordset("SELECT AttributsFamille.IDAttribut FROM AttributsFamille WHERE AttributsFamille.IDFamille= " & CodeFamille)
IdAttrib = t!IDAttribut
ReqValue = "SELECT ValeurAttributPossible.Valeur FROM ValeurAttributPossible WHERE ValeurAttributPossible.IDAttribut =" + IdAttrib
' DoCmd.OpenForm frmName, acDesign
Set Cbbx = Access.CreateControl(frmName, acComboBox, acDetail)
With Cbbx
.Name = "essai" & i
' .Height = 0.556
' .Left = 14
' .Top = 1.698 + (1 * i)
' .Width = 4
.RowSource = ReqValue
End With
t.Close
' DoCmd.Close acForm, frmName, acSaveYes
' DoCmd.OpenForm frmName, acNormal
'on ferme le formulaire
DoCmd.Close acForm, "GPE"
'on rouvre le sous-formulaire dans le formulaire principal
Form_GPE.ssfrmGPE.SourceObject = "GPE" 'on rouvre le sous-formulaire dans le formulaire principal
'on libère la mémoire
Set Cbbx = Nothing
i = i + 1
Loop
end sub |
Partager