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

Pb code sur touche appuyée

8 réponses
Avatar
jcp66
Bonjour
J'ai deja soumis ce pb dans un precedent message sans avoir eu de solution.
Mais comme je viens de le cerner un peu je me permets de le reposer.
Qui sait cela pourra peut etre eclairer un peu.

J'ai un code qui devrait se derouler sur clic de souris ou sur touche
appuyée (n importe laquelle)
Il fonctionne bien sur clic ais pas sur touche appuyée.
Et ce qui ne fonctionne pas ce sont les fonctons DMax et Dcount.
Cela fait un moment que je cogite en tournant en rond et sans rien voir.
Alors si qqun y voit plus clair par avance merci


Voici le code

Private Sub CodeSite_Click()
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" & Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" & Me.Objet_Site
& "'")
Objet_Titre = nbenreg
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub


Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" & Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" & Me.Objet_Site
& "'")
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub

8 réponses

Avatar
Argyronet
Bonjour,

1/ Pour éviter les confusions et les erreurs, il est judicieux de créer une
procédure unique qui effectue votre demande :

Private Sub CodeSite_Click()
Call MajCodeSite
End Sub

Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Call MajCodeSite
End Sub

Private Sub MajCodeSite()
{....}
End Sub

2/ L'événement de touches est supervisé par la propriété "KeyPreview" qui
doit être défini à True dans le Formulaire d'une part et il peut être
préférable de déclencher l'événement sur le formulaire (à étudier) :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = "Une touche spécifique" Then Call MajCodeSite
End Sub

"Une touche spécifique" est définie par une constante (ex : vbKeyF5 pour la
touche F5)
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour
J'ai deja soumis ce pb dans un precedent message sans avoir eu de solution.
Mais comme je viens de le cerner un peu je me permets de le reposer.
Qui sait cela pourra peut etre eclairer un peu.

J'ai un code qui devrait se derouler sur clic de souris ou sur touche
appuyée (n importe laquelle)
Il fonctionne bien sur clic ais pas sur touche appuyée.
Et ce qui ne fonctionne pas ce sont les fonctons DMax et Dcount.
Cela fait un moment que je cogite en tournant en rond et sans rien voir.
Alors si qqun y voit plus clair par avance merci


Voici le code

Private Sub CodeSite_Click()
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" & Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" & Me.Objet_Site
& "'")
Objet_Titre = nbenreg
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub


Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" & Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" & Me.Objet_Site
& "'")
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub






Avatar
jcp66
Merci Argy. Tes conseils m'ont permis de mettre un peu d'ordre dans
l'écriture des codes.
J'ai mis en place ce que tu me preconisais, mais j'ai toujours le meme
probleme OK sur click et KO sur touche appuyée (y compris en selection une
touche en l occurence F5).
Le probleme reste . Désolé.
jcp

"Argyronet" a écrit dans le message de
news:
Bonjour,

1/ Pour éviter les confusions et les erreurs, il est judicieux de créer
une
procédure unique qui effectue votre demande :

Private Sub CodeSite_Click()
Call MajCodeSite
End Sub

Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Call MajCodeSite
End Sub

Private Sub MajCodeSite()
{....}
End Sub

2/ L'événement de touches est supervisé par la propriété "KeyPreview" qui
doit être défini à True dans le Formulaire d'une part et il peut être
préférable de déclencher l'événement sur le formulaire (à étudier) :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = "Une touche spécifique" Then Call MajCodeSite
End Sub

"Une touche spécifique" est définie par une constante (ex : vbKeyF5 pour
la
touche F5)
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour
J'ai deja soumis ce pb dans un precedent message sans avoir eu de
solution.
Mais comme je viens de le cerner un peu je me permets de le reposer.
Qui sait cela pourra peut etre eclairer un peu.

J'ai un code qui devrait se derouler sur clic de souris ou sur touche
appuyée (n importe laquelle)
Il fonctionne bien sur clic ais pas sur touche appuyée.
Et ce qui ne fonctionne pas ce sont les fonctons DMax et Dcount.
Cela fait un moment que je cogite en tournant en rond et sans rien voir.
Alors si qqun y voit plus clair par avance merci


Voici le code

Private Sub CodeSite_Click()
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
Objet_Titre = nbenreg
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub


Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub









Avatar
Argyronet
Humm, avez-vous bien défini la propriété "Aperçu des Touches" à Vrai ?

Posez alors cet exemple dans votre code :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then MsgBox "Vous avez appuyé sur F5 !"
End Sub
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Merci Argy. Tes conseils m'ont permis de mettre un peu d'ordre dans
l'écriture des codes.
J'ai mis en place ce que tu me preconisais, mais j'ai toujours le meme
probleme OK sur click et KO sur touche appuyée (y compris en selection une
touche en l occurence F5).
Le probleme reste . Désolé.
jcp

"Argyronet" a écrit dans le message de
news:
Bonjour,

1/ Pour éviter les confusions et les erreurs, il est judicieux de créer
une
procédure unique qui effectue votre demande :

Private Sub CodeSite_Click()
Call MajCodeSite
End Sub

Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Call MajCodeSite
End Sub

Private Sub MajCodeSite()
{....}
End Sub

2/ L'événement de touches est supervisé par la propriété "KeyPreview" qui
doit être défini à True dans le Formulaire d'une part et il peut être
préférable de déclencher l'événement sur le formulaire (à étudier) :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = "Une touche spécifique" Then Call MajCodeSite
End Sub

"Une touche spécifique" est définie par une constante (ex : vbKeyF5 pour
la
touche F5)
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour
J'ai deja soumis ce pb dans un precedent message sans avoir eu de
solution.
Mais comme je viens de le cerner un peu je me permets de le reposer.
Qui sait cela pourra peut etre eclairer un peu.

J'ai un code qui devrait se derouler sur clic de souris ou sur touche
appuyée (n importe laquelle)
Il fonctionne bien sur clic ais pas sur touche appuyée.
Et ce qui ne fonctionne pas ce sont les fonctons DMax et Dcount.
Cela fait un moment que je cogite en tournant en rond et sans rien voir.
Alors si qqun y voit plus clair par avance merci


Voici le code

Private Sub CodeSite_Click()
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
Objet_Titre = nbenreg
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub


Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub














Avatar
jcp66
Il se positionne ou ce KeyPreview ?
Merci
jcp

"Argyronet" a écrit dans le message de
news:
Humm, avez-vous bien défini la propriété "Aperçu des Touches" à Vrai ?

Posez alors cet exemple dans votre code :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then MsgBox "Vous avez appuyé sur F5 !"
End Sub
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Merci Argy. Tes conseils m'ont permis de mettre un peu d'ordre dans
l'écriture des codes.
J'ai mis en place ce que tu me preconisais, mais j'ai toujours le meme
probleme OK sur click et KO sur touche appuyée (y compris en selection
une
touche en l occurence F5).
Le probleme reste . Désolé.
jcp

"Argyronet" a écrit dans le message
de
news:
Bonjour,

1/ Pour éviter les confusions et les erreurs, il est judicieux de créer
une
procédure unique qui effectue votre demande :

Private Sub CodeSite_Click()
Call MajCodeSite
End Sub

Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Call MajCodeSite
End Sub

Private Sub MajCodeSite()
{....}
End Sub

2/ L'événement de touches est supervisé par la propriété "KeyPreview"
qui
doit être défini à True dans le Formulaire d'une part et il peut être
préférable de déclencher l'événement sur le formulaire (à étudier) :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = "Une touche spécifique" Then Call MajCodeSite
End Sub

"Une touche spécifique" est définie par une constante (ex : vbKeyF5
pour
la
touche F5)
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour
J'ai deja soumis ce pb dans un precedent message sans avoir eu de
solution.
Mais comme je viens de le cerner un peu je me permets de le reposer.
Qui sait cela pourra peut etre eclairer un peu.

J'ai un code qui devrait se derouler sur clic de souris ou sur touche
appuyée (n importe laquelle)
Il fonctionne bien sur clic ais pas sur touche appuyée.
Et ce qui ne fonctionne pas ce sont les fonctons DMax et Dcount.
Cela fait un moment que je cogite en tournant en rond et sans rien
voir.
Alors si qqun y voit plus clair par avance merci


Voici le code

Private Sub CodeSite_Click()
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
Objet_Titre = nbenreg
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub


Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub

















Avatar
Argyronet
C'est une propriété du formulaire située dans l'onglet "Evénement"
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Il se positionne ou ce KeyPreview ?
Merci
jcp

"Argyronet" a écrit dans le message de
news:
Humm, avez-vous bien défini la propriété "Aperçu des Touches" à Vrai ?

Posez alors cet exemple dans votre code :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then MsgBox "Vous avez appuyé sur F5 !"
End Sub
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Merci Argy. Tes conseils m'ont permis de mettre un peu d'ordre dans
l'écriture des codes.
J'ai mis en place ce que tu me preconisais, mais j'ai toujours le meme
probleme OK sur click et KO sur touche appuyée (y compris en selection
une
touche en l occurence F5).
Le probleme reste . Désolé.
jcp

"Argyronet" a écrit dans le message
de
news:
Bonjour,

1/ Pour éviter les confusions et les erreurs, il est judicieux de créer
une
procédure unique qui effectue votre demande :

Private Sub CodeSite_Click()
Call MajCodeSite
End Sub

Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Call MajCodeSite
End Sub

Private Sub MajCodeSite()
{....}
End Sub

2/ L'événement de touches est supervisé par la propriété "KeyPreview"
qui
doit être défini à True dans le Formulaire d'une part et il peut être
préférable de déclencher l'événement sur le formulaire (à étudier) :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = "Une touche spécifique" Then Call MajCodeSite
End Sub

"Une touche spécifique" est définie par une constante (ex : vbKeyF5
pour
la
touche F5)
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour
J'ai deja soumis ce pb dans un precedent message sans avoir eu de
solution.
Mais comme je viens de le cerner un peu je me permets de le reposer.
Qui sait cela pourra peut etre eclairer un peu.

J'ai un code qui devrait se derouler sur clic de souris ou sur touche
appuyée (n importe laquelle)
Il fonctionne bien sur clic ais pas sur touche appuyée.
Et ce qui ne fonctionne pas ce sont les fonctons DMax et Dcount.
Cela fait un moment que je cogite en tournant en rond et sans rien
voir.
Alors si qqun y voit plus clair par avance merci


Voici le code

Private Sub CodeSite_Click()
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
Objet_Titre = nbenreg
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub


Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub






















Avatar
jcp66
Effectivement KeyPreview était positionné à Non. Je l'ai mis à Oui.
Maintenant qd j'appui sur F5 j'ai bien la boite de message qui apparait.
Mais j'ai tj le meme pb avec DMax et Dcount qui ne se calculent pas sur
touche appuyée alors qu'ils se calculent sur clic.
Le canard résiste................
jcp

"Argyronet" a écrit dans le message de
news:
C'est une propriété du formulaire située dans l'onglet "Evénement"
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Il se positionne ou ce KeyPreview ?
Merci
jcp

"Argyronet" a écrit dans le message
de
news:
Humm, avez-vous bien défini la propriété "Aperçu des Touches" à Vrai ?

Posez alors cet exemple dans votre code :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then MsgBox "Vous avez appuyé sur F5 !"
End Sub
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Merci Argy. Tes conseils m'ont permis de mettre un peu d'ordre dans
l'écriture des codes.
J'ai mis en place ce que tu me preconisais, mais j'ai toujours le meme
probleme OK sur click et KO sur touche appuyée (y compris en selection
une
touche en l occurence F5).
Le probleme reste . Désolé.
jcp

"Argyronet" a écrit dans le
message
de
news:
Bonjour,

1/ Pour éviter les confusions et les erreurs, il est judicieux de
créer
une
procédure unique qui effectue votre demande :

Private Sub CodeSite_Click()
Call MajCodeSite
End Sub

Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Call MajCodeSite
End Sub

Private Sub MajCodeSite()
{....}
End Sub

2/ L'événement de touches est supervisé par la propriété
"KeyPreview"
qui
doit être défini à True dans le Formulaire d'une part et il peut
être
préférable de déclencher l'événement sur le formulaire (à étudier) :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = "Une touche spécifique" Then Call MajCodeSite
End Sub

"Une touche spécifique" est définie par une constante (ex : vbKeyF5
pour
la
touche F5)
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour
J'ai deja soumis ce pb dans un precedent message sans avoir eu de
solution.
Mais comme je viens de le cerner un peu je me permets de le
reposer.
Qui sait cela pourra peut etre eclairer un peu.

J'ai un code qui devrait se derouler sur clic de souris ou sur
touche
appuyée (n importe laquelle)
Il fonctionne bien sur clic ais pas sur touche appuyée.
Et ce qui ne fonctionne pas ce sont les fonctons DMax et Dcount.
Cela fait un moment que je cogite en tournant en rond et sans rien
voir.
Alors si qqun y voit plus clair par avance merci


Voici le code

Private Sub CodeSite_Click()
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
Objet_Titre = nbenreg
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub


Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub

























Avatar
Argyronet
Disons que votre sollicitation concernait l'événement Touches.
Après le problème de votre procédure est autre chose.
Personnellement, je n'utilise jamais les fonctions de domaines qui restent
peu souples et un peu lourdes en performance.
Là, il vous appartient de vérifier que votre procédure retourne ce que vous
attendez.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Effectivement KeyPreview était positionné à Non. Je l'ai mis à Oui.
Maintenant qd j'appui sur F5 j'ai bien la boite de message qui apparait.
Mais j'ai tj le meme pb avec DMax et Dcount qui ne se calculent pas sur
touche appuyée alors qu'ils se calculent sur clic.
Le canard résiste................
jcp

"Argyronet" a écrit dans le message de
news:
C'est une propriété du formulaire située dans l'onglet "Evénement"
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Il se positionne ou ce KeyPreview ?
Merci
jcp

"Argyronet" a écrit dans le message
de
news:
Humm, avez-vous bien défini la propriété "Aperçu des Touches" à Vrai ?

Posez alors cet exemple dans votre code :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then MsgBox "Vous avez appuyé sur F5 !"
End Sub
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Merci Argy. Tes conseils m'ont permis de mettre un peu d'ordre dans
l'écriture des codes.
J'ai mis en place ce que tu me preconisais, mais j'ai toujours le meme
probleme OK sur click et KO sur touche appuyée (y compris en selection
une
touche en l occurence F5).
Le probleme reste . Désolé.
jcp

"Argyronet" a écrit dans le
message
de
news:
Bonjour,

1/ Pour éviter les confusions et les erreurs, il est judicieux de
créer
une
procédure unique qui effectue votre demande :

Private Sub CodeSite_Click()
Call MajCodeSite
End Sub

Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Call MajCodeSite
End Sub

Private Sub MajCodeSite()
{....}
End Sub

2/ L'événement de touches est supervisé par la propriété
"KeyPreview"
qui
doit être défini à True dans le Formulaire d'une part et il peut
être
préférable de déclencher l'événement sur le formulaire (à étudier) :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = "Une touche spécifique" Then Call MajCodeSite
End Sub

"Une touche spécifique" est définie par une constante (ex : vbKeyF5
pour
la
touche F5)
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour
J'ai deja soumis ce pb dans un precedent message sans avoir eu de
solution.
Mais comme je viens de le cerner un peu je me permets de le
reposer.
Qui sait cela pourra peut etre eclairer un peu.

J'ai un code qui devrait se derouler sur clic de souris ou sur
touche
appuyée (n importe laquelle)
Il fonctionne bien sur clic ais pas sur touche appuyée.
Et ce qui ne fonctionne pas ce sont les fonctons DMax et Dcount.
Cela fait un moment que je cogite en tournant en rond et sans rien
voir.
Alors si qqun y voit plus clair par avance merci


Voici le code

Private Sub CodeSite_Click()
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
Objet_Titre = nbenreg
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub


Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As Integer)
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub






























Avatar
jcp66
"Argyronet" a écrit dans le message de
news:
Disons que votre sollicitation concernait l'événement Touches.
Après le problème de votre procédure est autre chose.
Personnellement, je n'utilise jamais les fonctions de domaines qui restent
peu souples et un peu lourdes en performance.
Là, il vous appartient de vérifier que votre procédure retourne ce que
vous
attendez.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Effectivement KeyPreview était positionné à Non. Je l'ai mis à Oui.
Maintenant qd j'appui sur F5 j'ai bien la boite de message qui apparait.
Mais j'ai tj le meme pb avec DMax et Dcount qui ne se calculent pas sur
touche appuyée alors qu'ils se calculent sur clic.
Le canard résiste................
jcp

"Argyronet" a écrit dans le message
de
news:
C'est une propriété du formulaire située dans l'onglet "Evénement"
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Il se positionne ou ce KeyPreview ?
Merci
jcp

"Argyronet" a écrit dans le
message
de
news:
Humm, avez-vous bien défini la propriété "Aperçu des Touches" à Vrai
?

Posez alors cet exemple dans votre code :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then MsgBox "Vous avez appuyé sur F5 !"
End Sub
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Merci Argy. Tes conseils m'ont permis de mettre un peu d'ordre dans
l'écriture des codes.
J'ai mis en place ce que tu me preconisais, mais j'ai toujours le
meme
probleme OK sur click et KO sur touche appuyée (y compris en
selection
une
touche en l occurence F5).
Le probleme reste . Désolé.
jcp

"Argyronet" a écrit dans le
message
de
news:
Bonjour,

1/ Pour éviter les confusions et les erreurs, il est judicieux de
créer
une
procédure unique qui effectue votre demande :

Private Sub CodeSite_Click()
Call MajCodeSite
End Sub

Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As
Integer)
Call MajCodeSite
End Sub

Private Sub MajCodeSite()
{....}
End Sub

2/ L'événement de touches est supervisé par la propriété
"KeyPreview"
qui
doit être défini à True dans le Formulaire d'une part et il peut
être
préférable de déclencher l'événement sur le formulaire (à
étudier) :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = "Une touche spécifique" Then Call MajCodeSite
End Sub

"Une touche spécifique" est définie par une constante (ex :
vbKeyF5
pour
la
touche F5)
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007
(ISBN-2742982442 )



Bonjour
J'ai deja soumis ce pb dans un precedent message sans avoir eu
de
solution.
Mais comme je viens de le cerner un peu je me permets de le
reposer.
Qui sait cela pourra peut etre eclairer un peu.

J'ai un code qui devrait se derouler sur clic de souris ou sur
touche
appuyée (n importe laquelle)
Il fonctionne bien sur clic ais pas sur touche appuyée.
Et ce qui ne fonctionne pas ce sont les fonctons DMax et Dcount.
Cela fait un moment que je cogite en tournant en rond et sans
rien
voir.
Alors si qqun y voit plus clair par avance merci


Voici le code

Private Sub CodeSite_Click()
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
Objet_Titre = nbenreg
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub


Private Sub CodeSite_KeyDown(KeyCode As Integer, Shift As
Integer)
Me.CodeSite.DefaultValue = """" & Me.CodeSite & """"
objetmax = DMax("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
nbenreg = DCount("[Objet_Code]", "T_Objet", "[Objet_Site]='" &
Me.Objet_Site
& "'")
If nbenreg = 0 Then
Objet_Code = Objet_Site + "-001"
Else
nbobjets = Right(objetmax, 3) + 1
nbobjets = CStr(nbobjets)
nbobjets = "00" + nbobjets
nbobjets = Right(nbobjets, 3)
Objet_Code = Objet_Site + "-" + nbobjets
End If
End Sub