A voir également:
- Ouverture conditionnée de formulaire ACCESS
- Formulaire de réclamation facebook - Guide
- Page d'ouverture google - Guide
- Formulaire de reclamation instagram - Guide
- Le formulaire rempli - Guide
- Access runtime ✓ - Forum Access
2 réponses
ouai peu etre que sa sa pourrait t'aider : https://cafeine.developpez.com/access/tutoriel/recherchemulti/
Je vois deux solutions à ton problème et cela dépend si ta liste de choix comporte la colonne Dispo (affiché ou pas) ou non.
Dans le premier cas (en admettant que Dispo soit la 2ème colonne de ta liste:
Dim intIndex as Integer
Dim blnDispo as Boolean
Dim intNumColonne as Integer
intIndex = Me.ACTIVITES.ListIndex 'Tu récupère le numéro de la ligne sélectionné
blnDispo = Me.ACTIVITES.Column(IntIndex,intNumColonne) 'Tu récupère la valeur de Dispo
intNumColonne = 1 'Ta valeur de dispo se trouve dans la 2ème colonne de ta liste de choix, donc : 2-1.
If blnDispo = true then
DoCmd.OpenForm "F_1"
else
DoCmd.OpenForm "F_2"
End if
Bien sur, ce code est à adapter suivant que ta valeur de Dispo est dans la 1ère ou 2ième colonne de ta liste de choix.
Il est aussi à préciser que le numéro de ligne et de colonne d'une liste de choix est numéroté à partir de 0. C'est pourquoi pour la 1ère colonne tu mettra 0, pour la deuxième 1 etc....
Deuxième cas :
Private Sub NomDu Boutton_Click()
On Error Goto TraitError
Dim Cnn as Adodb.Connection
Dim rst as Adodb.Recordset
Dim str as string
Dim strACT as string
Dim intIndex as Integer
Set Cnn = CurrentProject.Connection
Set rst = new Adodb.Recordset
intIndex = Me.ACTIVITES.ListIndex 'Tu récupère le numéro de la ligne sélectionné
strACT = Me.ACTIVITES.Column(intIndex,0)
str = "SELECT T_ACT.* FROM T_ACT WHERE ((T_ACT.ACT)=""" & strACT & """)"
rst.Open str,Cnn,adOpenDynamic,adCmdText
if Not rst.BOF then rst.MoveFirst
If rst.EOF then
Goto Fin
End Fin
If rst("DISPO") = True then
DoCmd.OpenForm "F_1"
else
DoCmd.OpenForm "F_2"
end if
Fin:
Set Cnn = Nothing
Set rst = Nothing
TraitError
MsgBox "Erreur : " & Err.Number & vbcrlf & vbcrlf & "Description : " & Err.Description
Goto Fin
End Sub
Dans le premier cas (en admettant que Dispo soit la 2ème colonne de ta liste:
Dim intIndex as Integer
Dim blnDispo as Boolean
Dim intNumColonne as Integer
intIndex = Me.ACTIVITES.ListIndex 'Tu récupère le numéro de la ligne sélectionné
blnDispo = Me.ACTIVITES.Column(IntIndex,intNumColonne) 'Tu récupère la valeur de Dispo
intNumColonne = 1 'Ta valeur de dispo se trouve dans la 2ème colonne de ta liste de choix, donc : 2-1.
If blnDispo = true then
DoCmd.OpenForm "F_1"
else
DoCmd.OpenForm "F_2"
End if
Bien sur, ce code est à adapter suivant que ta valeur de Dispo est dans la 1ère ou 2ième colonne de ta liste de choix.
Il est aussi à préciser que le numéro de ligne et de colonne d'une liste de choix est numéroté à partir de 0. C'est pourquoi pour la 1ère colonne tu mettra 0, pour la deuxième 1 etc....
Deuxième cas :
Private Sub NomDu Boutton_Click()
On Error Goto TraitError
Dim Cnn as Adodb.Connection
Dim rst as Adodb.Recordset
Dim str as string
Dim strACT as string
Dim intIndex as Integer
Set Cnn = CurrentProject.Connection
Set rst = new Adodb.Recordset
intIndex = Me.ACTIVITES.ListIndex 'Tu récupère le numéro de la ligne sélectionné
strACT = Me.ACTIVITES.Column(intIndex,0)
str = "SELECT T_ACT.* FROM T_ACT WHERE ((T_ACT.ACT)=""" & strACT & """)"
rst.Open str,Cnn,adOpenDynamic,adCmdText
if Not rst.BOF then rst.MoveFirst
If rst.EOF then
Goto Fin
End Fin
If rst("DISPO") = True then
DoCmd.OpenForm "F_1"
else
DoCmd.OpenForm "F_2"
end if
Fin:
Set Cnn = Nothing
Set rst = Nothing
TraitError
MsgBox "Erreur : " & Err.Number & vbcrlf & vbcrlf & "Description : " & Err.Description
Goto Fin
End Sub