Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Revenir en arrière dans une fonction

7 réponses
Avatar
Guy FALESSE
Bonjour à tous,

Dans la fonction ci-dessous, je voudrais, lorsque le critère est rencontré,
revenir en arrière, rendre ce champ vide et la fonction n'en veut pas.

Public Function OccurenceDVD()
Dim maBD As Database, Critère As Control
Dim meD As Form, rep As Integer
Dim leCritère As String
Set maBD = CurrentDb
If EstChargé("frmDVD") Then
Set meD = Forms!frmDVD
End If
Set Critère = meD!TitreDVD
Set rstDVD = maBD.OpenRecordset("tblDVD", dbOpenDynaset)
leCritère = "titreDVD=""" & Critère & """"
'double guillement pour éviter erreur lors de saisie d'un mot avec
une apostrophe,
'on remplace les apostrophes par des doubles guillemets
'
With rstDVD
If .RecordCount > 0 Then
.MoveLast
.FindFirst leCritère
If Not .NoMatch Then
rep = MsgBox("Ce titre" & " " & "*" & Critère & "*" & " "
& " existe déjà !" & vbLf _
& "Continuer?", vbCritical + vbYesNo, "Titre
DVD")
If rep = vbNo Then
meD!TitreDVD.SetFocus
meD!TitreDVD = ""
End If

End If
End If
End With
'
Set Critère = Nothing
Set maBD = Nothing
Set meD = Nothing
Set rstDVD = Nothing
End Function

D'avance merci, je ne comprends pas :-(
@+

Guy FALESSE

7 réponses

Avatar
Guy FALESSE
Re-Bonjour,
Je me suis sans doute mal exprimé lorsque la fonction rencontre les lignes
ci-dessous:
If Not .NoMatch Then
rep = MsgBox("Ce titre" & " " & "*" & Critère & "*" & " "
& " existe déjà !" & vbLf _
& "Continuer?", vbCritical + vbYesNo, "Titre
DVD")
If rep = vbNo Then
meD!TitreDVD.SetFocus
meD!TitreDVD = ""
End If

End If
et que le critère a été rencontré, donc, même titre, le message demande s'il
faut continuer, si on répond par la négative, ce champ titre devrait être
effacé, ce qu'il se passe d'ailleurs, mais que le curseur se replace sur la
champ redevenu vide titreDVD, mais ça, ça ne veut pas le faire, alors, je me
demande bien pourquoi?
Alors, s'il y avait une âme charitable qui me permettrai de résoudre ce
petit problème, elle est la bienvenue :-)
D'avance merci,

Guy FALESSE

"Guy FALESSE" a écrit dans le message de news:
4a6f14b5$0$2859$
Bonjour à tous,

Dans la fonction ci-dessous, je voudrais, lorsque le critère est
rencontré, revenir en arrière, rendre ce champ vide et la fonction n'en
veut pas.

Public Function OccurenceDVD()
Dim maBD As Database, Critère As Control
Dim meD As Form, rep As Integer
Dim leCritère As String
Set maBD = CurrentDb
If EstChargé("frmDVD") Then
Set meD = Forms!frmDVD
End If
Set Critère = meD!TitreDVD
Set rstDVD = maBD.OpenRecordset("tblDVD", dbOpenDynaset)
leCritère = "titreDVD=""" & Critère & """"
'double guillement pour éviter erreur lors de saisie d'un mot avec
une apostrophe,
'on remplace les apostrophes par des doubles guillemets
'
With rstDVD
If .RecordCount > 0 Then
.MoveLast
.FindFirst leCritère
If Not .NoMatch Then
rep = MsgBox("Ce titre" & " " & "*" & Critère & "*" & " "
& " existe déjà !" & vbLf _
& "Continuer?", vbCritical + vbYesNo, "Titre
DVD")
If rep = vbNo Then
meD!TitreDVD.SetFocus
meD!TitreDVD = ""
End If

End If
End If
End With
'
Set Critère = Nothing
Set maBD = Nothing
Set meD = Nothing
Set rstDVD = Nothing
End Function

D'avance merci, je ne comprends pas :-(
@+

Guy FALESSE



Avatar
Guy FALESSE
Re-RE
J'ai contourné le problème en faisant:

If rep = vbNo Then
meD!TitreDVD = ""
End If
NewTitre = InputBox("Veuillez taper le nouveau titre")
meD!TitreDVD = NewTitre

Voilà, merci aux personnes qui auraient cherché la solution malgré que la
question initiale à savoir :
meD!TitreDVD.SetFocus, ne fonctionne pas, reste posée. :-)

@+

Guy FALESSE

"Guy FALESSE" a écrit dans le message de news:
4a6ff968$0$2850$
Re-Bonjour,
Je me suis sans doute mal exprimé lorsque la fonction rencontre les lignes
ci-dessous:
If Not .NoMatch Then
rep = MsgBox("Ce titre" & " " & "*" & Critère & "*" & " "
& " existe déjà !" & vbLf _
& "Continuer?", vbCritical + vbYesNo, "Titre
DVD")
If rep = vbNo Then
meD!TitreDVD.SetFocus
meD!TitreDVD = ""
End If

End If
et que le critère a été rencontré, donc, même titre, le message demande
s'il faut continuer, si on répond par la négative, ce champ titre devrait
être effacé, ce qu'il se passe d'ailleurs, mais que le curseur se replace
sur la champ redevenu vide titreDVD, mais ça, ça ne veut pas le faire,
alors, je me demande bien pourquoi?
Alors, s'il y avait une âme charitable qui me permettrai de résoudre ce
petit problème, elle est la bienvenue :-)
D'avance merci,

Guy FALESSE

"Guy FALESSE" a écrit dans le message de news:
4a6f14b5$0$2859$
Bonjour à tous,

Dans la fonction ci-dessous, je voudrais, lorsque le critère est
rencontré, revenir en arrière, rendre ce champ vide et la fonction n'en
veut pas.

Public Function OccurenceDVD()
Dim maBD As Database, Critère As Control
Dim meD As Form, rep As Integer
Dim leCritère As String
Set maBD = CurrentDb
If EstChargé("frmDVD") Then
Set meD = Forms!frmDVD
End If
Set Critère = meD!TitreDVD
Set rstDVD = maBD.OpenRecordset("tblDVD", dbOpenDynaset)
leCritère = "titreDVD=""" & Critère & """"
'double guillement pour éviter erreur lors de saisie d'un mot
avec une apostrophe,
'on remplace les apostrophes par des doubles guillemets
'
With rstDVD
If .RecordCount > 0 Then
.MoveLast
.FindFirst leCritère
If Not .NoMatch Then
rep = MsgBox("Ce titre" & " " & "*" & Critère & "*" & "
" & " existe déjà !" & vbLf _
& "Continuer?", vbCritical + vbYesNo, "Titre
DVD")
If rep = vbNo Then
meD!TitreDVD.SetFocus
meD!TitreDVD = ""
End If

End If
End If
End With
'
Set Critère = Nothing
Set maBD = Nothing
Set meD = Nothing
Set rstDVD = Nothing
End Function

D'avance merci, je ne comprends pas :-(
@+

Guy FALESSE







Avatar
3stone
Salut,

Guy FALESSE wrote:
[...]
Voilà, merci aux personnes qui auraient cherché la solution malgré
que la question initiale à savoir :
meD!TitreDVD.SetFocus, ne fonctionne pas, reste posée. :-)




Le code n'est pas dans le formulaire dans frmDVD, il semblerait...

Forms(meD).SetFocus
forms(meD)!TitreDVD.SetFocus

ou

meD.SetFocus
meD!TitreDVD.SetFocus


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Guy FALESSE
Salut Pierre,
Merci pour ta réponse :-)

Le code n'est pas dans le formulaire dans frmDVD, il semblerait...


Je ne comprends pas ta phrase, désolé...la chaleur sans doute :-(
@+

Guy FALESSE

"3stone" a écrit dans le message de news:

Salut,

Guy FALESSE wrote:
[...]
Voilà, merci aux personnes qui auraient cherché la solution malgré
que la question initiale à savoir :
meD!TitreDVD.SetFocus, ne fonctionne pas, reste posée. :-)




Le code n'est pas dans le formulaire dans frmDVD, il semblerait...

Forms(meD).SetFocus
forms(meD)!TitreDVD.SetFocus

ou

meD.SetFocus
meD!TitreDVD.SetFocus


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Avatar
Guy FALESSE
Salut Pierre,

J'ai essayé ça:
If rep = vbNo Then
meD!TitreDVD = ""
End If
'NewTitre = InputBox("Veuillez taper le nouveau titre")
'meD!TitreDVD = NewTitre
Forms!frmDVD.SetFocus
Forms!frmDVD!TitreDVD.SetFocus
Même chose, le curseur se met sur TypeDVD

J'ai d'abord essayé ce que tu avais écrit, j'ai eu :"incompatibilité de
type"
Je suis avec accessXP
@+

Guy FALESSE


"Guy FALESSE" a écrit dans le message de news:
4a7050b8$0$2862$
Salut Pierre,
Merci pour ta réponse :-)

Le code n'est pas dans le formulaire dans frmDVD, il semblerait...


Je ne comprends pas ta phrase, désolé...la chaleur sans doute :-(
@+

Guy FALESSE

"3stone" a écrit dans le message de news:

Salut,

Guy FALESSE wrote:
[...]
Voilà, merci aux personnes qui auraient cherché la solution malgré
que la question initiale à savoir :
meD!TitreDVD.SetFocus, ne fonctionne pas, reste posée. :-)




Le code n'est pas dans le formulaire dans frmDVD, il semblerait...

Forms(meD).SetFocus
forms(meD)!TitreDVD.SetFocus

ou

meD.SetFocus
meD!TitreDVD.SetFocus


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)








Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir

C'est du belge ...

Non, sérieusement, tu ne fais référence au formulaire précité : tu parles de
'frmDVD' et on voit 'frmD'
C'est pas la même chose !

Et puis , au lieu de faire un movelast avant une recherche, ce ne serait pas
mieux un movefirst ?
Et si après un movenext tu es en EOF, il te reste un moveprevious...

(çà, c'est pas du belge, mais du jargon)


Cdt, Blaise
---- ---- ----


"Guy FALESSE" a écrit dans le message de news:
4a7050b8$0$2862$
Salut Pierre,
Merci pour ta réponse :-)

Le code n'est pas dans le formulaire dans frmDVD, il semblerait...


Je ne comprends pas ta phrase, désolé...la chaleur sans doute :-(
@+

Guy FALESSE

"3stone" a écrit dans le message de news:

Salut,

Guy FALESSE wrote:
[...]
Voilà, merci aux personnes qui auraient cherché la solution malgré
que la question initiale à savoir :
meD!TitreDVD.SetFocus, ne fonctionne pas, reste posée. :-)




Le code n'est pas dans le formulaire dans frmDVD, il semblerait...

Forms(meD).SetFocus
forms(meD)!TitreDVD.SetFocus

ou

meD.SetFocus
meD!TitreDVD.SetFocus


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)







Avatar
Guy FALESSE
Salut Blaise,
Merci pour ta réponse.
Le but du jeu est de mettre le focus sur un champ, celui tu titre qui vient
d'être effacé, lorsque le critère égale le titre qui vient d'être écrit.
On demande, dans ce cas, que le contenu du champ "TitreDVD" soit effacé,
c'est ce qui se passe, mais on demande aussi que le focus revienne sur ce
champ TitreDVD, ce qui ne se fait pas; :-(
@+

Guy FALESSE

"Blaise Cacramp" a écrit dans le message de news:
%23w$

Selon : Bonjour ou bonsoir

C'est du belge ...

Non, sérieusement, tu ne fais référence au formulaire précité : tu parles
de 'frmDVD' et on voit 'frmD'
C'est pas la même chose !

Et puis , au lieu de faire un movelast avant une recherche, ce ne serait
pas mieux un movefirst ?
Et si après un movenext tu es en EOF, il te reste un moveprevious...

(çà, c'est pas du belge, mais du jargon)


Cdt, Blaise
---- ---- ----


"Guy FALESSE" a écrit dans le message de news:
4a7050b8$0$2862$
Salut Pierre,
Merci pour ta réponse :-)

Le code n'est pas dans le formulaire dans frmDVD, il semblerait...


Je ne comprends pas ta phrase, désolé...la chaleur sans doute :-(
@+

Guy FALESSE

"3stone" a écrit dans le message de news:

Salut,

Guy FALESSE wrote:
[...]
Voilà, merci aux personnes qui auraient cherché la solution malgré
que la question initiale à savoir :
meD!TitreDVD.SetFocus, ne fonctionne pas, reste posée. :-)




Le code n'est pas dans le formulaire dans frmDVD, il semblerait...

Forms(meD).SetFocus
forms(meD)!TitreDVD.SetFocus

ou

meD.SetFocus
meD!TitreDVD.SetFocus


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)