Comment faire en vba pour remplacer la macro "Recherche"
qui atteind d'abord un enregistrement et apr=E8s atteind un=20
controle.
Et si vous auriez eventuellement une id=E9e pour am=E9liorer=20
ce code je suis preneur
If Me![Liste12].ListCount =3D 0 Then
Respons =3D MsgBox("ACUNE PERSONNE A RELANCER", vbOKOnly +=20
vbInformation)
Exit Sub
Else
stDocName =3D "Recherche"
DoCmd.RunMacro stDocName
End If
If IsNull([Form_Relance].Form![DateRelance1]) And IsNull
(Form_Relance.Form![DateRelance2]) And IsNull
(Form_Relance.Form![DateRelance3]) And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance1] =3D Date
Form_Relance.Form![DateRelance1].Visible =3D True
Form_Relance.Form![DateRelance2].Visible =3D False
Form_Relance.Form![DateRelance3].Visible =3D False
Form_Relance.Form![DateRelance4].Visible =3D False
frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And IsNull
(Form_Relance.Form![DateRelance2]) And IsNull
(Form_Relance.Form![DateRelance3]) And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance1].Visible =3D False
Form_Relance.Form![DateRelance2].Visible =3D True
Form_Relance.Form![DateRelance3].Visible =3D False
Form_Relance.Form![DateRelance4].Visible =3D False
Form_Relance.Form![DateRelance2] =3D Date
frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And=20
Form_Relance.Form![DateRelance2] <> "" And IsNull
(Form_Relance.Form![DateRelance3]) And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance1].Visible =3D False
Form_Relance.Form![DateRelance2].Visible =3D False
Form_Relance.Form![DateRelance3].Visible =3D True
Form_Relance.Form![DateRelance4].Visible =3D False
Form_Relance.Form![DateRelance3] =3D Date
frm.Actualiser
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jean
Bonjour, Si tu cherches à filtrer par une liste sur un formulaire, essaye: Me.Filter = "[champ] = " & Me![maListe].Column(x) Me.FilterOn = True à adapter (x = 0, 1, : rang de la colonne de la liste)
Cordialement, jean
-----Message d'origine----- ACCESS XP
Bonjour,
Comment faire en vba pour remplacer la macro "Recherche" qui atteind d'abord un enregistrement et après atteind un controle.
Et si vous auriez eventuellement une idée pour améliorer ce code je suis preneur
If Me![Liste12].ListCount = 0 Then Respons = MsgBox("ACUNE PERSONNE A RELANCER", vbOKOnly + vbInformation) Exit Sub
Else
stDocName = "Recherche" DoCmd.RunMacro stDocName End If
If IsNull([Form_Relance].Form![DateRelance1]) And IsNull (Form_Relance.Form![DateRelance2]) And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1] = Date Form_Relance.Form![DateRelance1].Visible = True Form_Relance.Form![DateRelance2].Visible = False Form_Relance.Form![DateRelance3].Visible = False Form_Relance.Form![DateRelance4].Visible = False frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And IsNull (Form_Relance.Form![DateRelance2]) And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1].Visible = False Form_Relance.Form![DateRelance2].Visible = True Form_Relance.Form![DateRelance3].Visible = False Form_Relance.Form![DateRelance4].Visible = False Form_Relance.Form![DateRelance2] = Date frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And Form_Relance.Form![DateRelance2] <> "" And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1].Visible = False Form_Relance.Form![DateRelance2].Visible = False Form_Relance.Form![DateRelance3].Visible = True Form_Relance.Form![DateRelance4].Visible = False Form_Relance.Form![DateRelance3] = Date frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And Form_Relance.Form![DateRelance2] <> "" And Form_Relance.Form![DateRelance3] <> "" And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1].Visible = False Form_Relance.Form![DateRelance2].Visible = False Form_Relance.Form![DateRelance3].Visible = False Form_Relance.Form![DateRelance4].Visible = True Form_Relance.Form![DateRelance4] = Date frm.Actualiser
Else Me.Codecontact.SetFocus End If
End Sub
.
Bonjour,
Si tu cherches à filtrer par une liste sur un formulaire,
essaye:
Me.Filter = "[champ] = " & Me![maListe].Column(x)
Me.FilterOn = True
à adapter (x = 0, 1, : rang de la colonne de la liste)
Cordialement,
jean
-----Message d'origine-----
ACCESS XP
Bonjour,
Comment faire en vba pour remplacer la macro "Recherche"
qui atteind d'abord un enregistrement et après atteind un
controle.
Et si vous auriez eventuellement une idée pour améliorer
ce code je suis preneur
If Me![Liste12].ListCount = 0 Then
Respons = MsgBox("ACUNE PERSONNE A RELANCER", vbOKOnly +
vbInformation)
Exit Sub
Else
stDocName = "Recherche"
DoCmd.RunMacro stDocName
End If
If IsNull([Form_Relance].Form![DateRelance1]) And IsNull
(Form_Relance.Form![DateRelance2]) And IsNull
(Form_Relance.Form![DateRelance3]) And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance1] = Date
Form_Relance.Form![DateRelance1].Visible = True
Form_Relance.Form![DateRelance2].Visible = False
Form_Relance.Form![DateRelance3].Visible = False
Form_Relance.Form![DateRelance4].Visible = False
frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And IsNull
(Form_Relance.Form![DateRelance2]) And IsNull
(Form_Relance.Form![DateRelance3]) And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance1].Visible = False
Form_Relance.Form![DateRelance2].Visible = True
Form_Relance.Form![DateRelance3].Visible = False
Form_Relance.Form![DateRelance4].Visible = False
Form_Relance.Form![DateRelance2] = Date
frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And
Form_Relance.Form![DateRelance2] <> "" And IsNull
(Form_Relance.Form![DateRelance3]) And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance1].Visible = False
Form_Relance.Form![DateRelance2].Visible = False
Form_Relance.Form![DateRelance3].Visible = True
Form_Relance.Form![DateRelance4].Visible = False
Form_Relance.Form![DateRelance3] = Date
frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And
Form_Relance.Form![DateRelance2] <> "" And
Form_Relance.Form![DateRelance3] <> "" And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance1].Visible = False
Form_Relance.Form![DateRelance2].Visible = False
Form_Relance.Form![DateRelance3].Visible = False
Form_Relance.Form![DateRelance4].Visible = True
Form_Relance.Form![DateRelance4] = Date
frm.Actualiser
Bonjour, Si tu cherches à filtrer par une liste sur un formulaire, essaye: Me.Filter = "[champ] = " & Me![maListe].Column(x) Me.FilterOn = True à adapter (x = 0, 1, : rang de la colonne de la liste)
Cordialement, jean
-----Message d'origine----- ACCESS XP
Bonjour,
Comment faire en vba pour remplacer la macro "Recherche" qui atteind d'abord un enregistrement et après atteind un controle.
Et si vous auriez eventuellement une idée pour améliorer ce code je suis preneur
If Me![Liste12].ListCount = 0 Then Respons = MsgBox("ACUNE PERSONNE A RELANCER", vbOKOnly + vbInformation) Exit Sub
Else
stDocName = "Recherche" DoCmd.RunMacro stDocName End If
If IsNull([Form_Relance].Form![DateRelance1]) And IsNull (Form_Relance.Form![DateRelance2]) And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1] = Date Form_Relance.Form![DateRelance1].Visible = True Form_Relance.Form![DateRelance2].Visible = False Form_Relance.Form![DateRelance3].Visible = False Form_Relance.Form![DateRelance4].Visible = False frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And IsNull (Form_Relance.Form![DateRelance2]) And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1].Visible = False Form_Relance.Form![DateRelance2].Visible = True Form_Relance.Form![DateRelance3].Visible = False Form_Relance.Form![DateRelance4].Visible = False Form_Relance.Form![DateRelance2] = Date frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And Form_Relance.Form![DateRelance2] <> "" And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1].Visible = False Form_Relance.Form![DateRelance2].Visible = False Form_Relance.Form![DateRelance3].Visible = True Form_Relance.Form![DateRelance4].Visible = False Form_Relance.Form![DateRelance3] = Date frm.Actualiser
ElseIf Form_Relance.Form![DateRelance1] <> "" And Form_Relance.Form![DateRelance2] <> "" And Form_Relance.Form![DateRelance3] <> "" And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1].Visible = False Form_Relance.Form![DateRelance2].Visible = False Form_Relance.Form![DateRelance3].Visible = False Form_Relance.Form![DateRelance4].Visible = True Form_Relance.Form![DateRelance4] = Date frm.Actualiser
Else Me.Codecontact.SetFocus End If
End Sub
.
Franck
Bonjour, Jean
Merci pour ta réponse
C'est pas tout à fait ça!
En fait j'ai une zone de liste (liste12)basé sur une requête qui m'affiche les personnes à relancer
A coté de cette liste, j'ai une zone de texte (Texte39) avec comme source contrôle : =Liste12.column(3) Avec =Liste12.column(3), je récupère la référence du contact
Sur l'évenement "double clic" de la liste12, j'ai mis le code ci-dessous
''Je Test si la liste est vide'' If Me![Liste12].ListCount = 0 Then Respons = MsgBox("ACUNE PERSONNE A RELANCER", vbOKOnly + vbInformation) Exit Sub
Else
''J'execute la macro "recherche" pour aller sur la fiche du contact''''
stDocName = "Recherche" DoCmd.RunMacro stDocName End If
'Les problème commence là!!!' 'Ici j'essai de dire que si il n'y a rien dans les champs daterelance mettre la date' mais comment être sur que ce code s'éxécute après la macro "recherche"
If IsNull([Form_Relance].Form![DateRelance1]) And IsNull (Form_Relance.Form![DateRelance2]) And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1] = Date
ElseIf Form_Relance.Form![DateRelance1] <> "" And IsNull (Form_Relance.Form![DateRelance2]) And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance2] = Date
ElseIf Form_Relance.Form![DateRelance1] <> "" And Form_Relance.Form![DateRelance2] <> "" And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance3] = Date
ElseIf Form_Relance.Form![DateRelance1] <> "" And Form_Relance.Form![DateRelance2] <> "" And Form_Relance.Form![DateRelance3] <> "" And IsNull (Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance4] = Date frm.Actualiser
Else Me.Codecontact.SetFocus End If End Sub
(La macro "Recherche" commence par AtteindreunEnregistrement : Référence =[Texte39] puis Atteindrecontrôle : Référence =[EmailRep])
Le but final de tous ça est : Quand la personne clic sur la liste12 aller directement sur la fiche concernant le contact (grace à la macro "Recherche") Une fois sur la fiche du contact exécuter le code ci- dessus mais sans rééxécuter la macro je pense qu'il faudrait au lieu de la macro, écrire directement le code en Vba (mais je sais pas faire)
J'espère etre clair dans mon explication
Merci pour vos réponse
.
.
Bonjour, Jean
Merci pour ta réponse
C'est pas tout à fait ça!
En fait j'ai une zone de liste (liste12)basé sur une
requête qui m'affiche les personnes à relancer
A coté de cette liste, j'ai une zone de texte (Texte39)
avec comme source contrôle : =Liste12.column(3)
Avec =Liste12.column(3), je récupère la référence du
contact
Sur l'évenement "double clic" de la liste12, j'ai mis le
code ci-dessous
''Je Test si la liste est vide''
If Me![Liste12].ListCount = 0 Then
Respons = MsgBox("ACUNE PERSONNE A RELANCER", vbOKOnly +
vbInformation)
Exit Sub
Else
''J'execute la macro "recherche" pour aller sur la fiche
du contact''''
stDocName = "Recherche"
DoCmd.RunMacro stDocName
End If
'Les problème commence là!!!'
'Ici j'essai de dire que si il n'y a rien dans les champs
daterelance mettre la date' mais comment être sur que ce
code s'éxécute après la macro "recherche"
If IsNull([Form_Relance].Form![DateRelance1]) And IsNull
(Form_Relance.Form![DateRelance2]) And IsNull
(Form_Relance.Form![DateRelance3]) And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance1] = Date
ElseIf Form_Relance.Form![DateRelance1] <> "" And IsNull
(Form_Relance.Form![DateRelance2]) And IsNull
(Form_Relance.Form![DateRelance3]) And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance2] = Date
ElseIf Form_Relance.Form![DateRelance1] <> "" And
Form_Relance.Form![DateRelance2] <> "" And IsNull
(Form_Relance.Form![DateRelance3]) And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance3] = Date
ElseIf Form_Relance.Form![DateRelance1] <> "" And
Form_Relance.Form![DateRelance2] <> "" And
Form_Relance.Form![DateRelance3] <> "" And IsNull
(Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance4] = Date
frm.Actualiser
Else
Me.Codecontact.SetFocus
End If
End Sub
(La macro "Recherche" commence par
AtteindreunEnregistrement : Référence =[Texte39] puis
Atteindrecontrôle : Référence =[EmailRep])
Le but final de tous ça est :
Quand la personne clic sur la liste12 aller directement
sur la fiche concernant le contact (grace à la
macro "Recherche")
Une fois sur la fiche du contact exécuter le code ci-
dessus mais sans rééxécuter la macro
je pense qu'il faudrait au lieu de la macro, écrire
directement le code en Vba (mais je sais pas faire)
En fait j'ai une zone de liste (liste12)basé sur une requête qui m'affiche les personnes à relancer
A coté de cette liste, j'ai une zone de texte (Texte39) avec comme source contrôle : =Liste12.column(3) Avec =Liste12.column(3), je récupère la référence du contact
Sur l'évenement "double clic" de la liste12, j'ai mis le code ci-dessous
''Je Test si la liste est vide'' If Me![Liste12].ListCount = 0 Then Respons = MsgBox("ACUNE PERSONNE A RELANCER", vbOKOnly + vbInformation) Exit Sub
Else
''J'execute la macro "recherche" pour aller sur la fiche du contact''''
stDocName = "Recherche" DoCmd.RunMacro stDocName End If
'Les problème commence là!!!' 'Ici j'essai de dire que si il n'y a rien dans les champs daterelance mettre la date' mais comment être sur que ce code s'éxécute après la macro "recherche"
If IsNull([Form_Relance].Form![DateRelance1]) And IsNull (Form_Relance.Form![DateRelance2]) And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance1] = Date
ElseIf Form_Relance.Form![DateRelance1] <> "" And IsNull (Form_Relance.Form![DateRelance2]) And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance2] = Date
ElseIf Form_Relance.Form![DateRelance1] <> "" And Form_Relance.Form![DateRelance2] <> "" And IsNull (Form_Relance.Form![DateRelance3]) And IsNull (Form_Relance.Form![DateRelance4]) Then Form_Relance.Form![DateRelance3] = Date
ElseIf Form_Relance.Form![DateRelance1] <> "" And Form_Relance.Form![DateRelance2] <> "" And Form_Relance.Form![DateRelance3] <> "" And IsNull (Form_Relance.Form![DateRelance4]) Then
Form_Relance.Form![DateRelance4] = Date frm.Actualiser
Else Me.Codecontact.SetFocus End If End Sub
(La macro "Recherche" commence par AtteindreunEnregistrement : Référence =[Texte39] puis Atteindrecontrôle : Référence =[EmailRep])
Le but final de tous ça est : Quand la personne clic sur la liste12 aller directement sur la fiche concernant le contact (grace à la macro "Recherche") Une fois sur la fiche du contact exécuter le code ci- dessus mais sans rééxécuter la macro je pense qu'il faudrait au lieu de la macro, écrire directement le code en Vba (mais je sais pas faire)