Ouverture conditionnée de formulaire ACCESS
chewinggum
-
Rylobarteam -
Rylobarteam -
Bonjour à tous:
mon problème concerne du code VB pour un bouton de compmande dans un formulaire ACCESS.
Une table T_ACT avec deux champs: ACT (texte) et DISPO (oui/non).
Un formulaire F_CHOIX avec une zone de liste (qui prend les valeurs de ACT) appelé ACTIVITES, et un bouton de commande qui doit ouvrir deux formulaires au choix.
Le premier formulaire doit s'ouvrir si DISPO = oui pour, l'autre si DISPO =non.
Comment écrire en code pour le bouton:
Sur clic, Place toi sur l'enregistrement de T_ACT où ACT=ACTIVITES spécifié dans F_CHOIX.
Si, pour cet enregistrement DISPO = oui alors ouvre F_1, si DISPO =non alors ouvre F_2.
MErci beaucoup pour l'aide que vou spourrez m'apporter
mon problème concerne du code VB pour un bouton de compmande dans un formulaire ACCESS.
Une table T_ACT avec deux champs: ACT (texte) et DISPO (oui/non).
Un formulaire F_CHOIX avec une zone de liste (qui prend les valeurs de ACT) appelé ACTIVITES, et un bouton de commande qui doit ouvrir deux formulaires au choix.
Le premier formulaire doit s'ouvrir si DISPO = oui pour, l'autre si DISPO =non.
Comment écrire en code pour le bouton:
Sur clic, Place toi sur l'enregistrement de T_ACT où ACT=ACTIVITES spécifié dans F_CHOIX.
Si, pour cet enregistrement DISPO = oui alors ouvre F_1, si DISPO =non alors ouvre F_2.
MErci beaucoup pour l'aide que vou spourrez m'apporter
A voir également:
- Ouverture conditionnée de formulaire ACCESS
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Page d'ouverture google - Guide
- Formulaire de contact le bon coin introuvable - Forum Réseaux sociaux
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