Tester une case SANS avoir le focus ?

el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 - 19 juil. 2004 à 12:47
zarbiman Messages postés 53 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 20 octobre 2005 - 14 mars 2005 à 10:44
Salut a tous,

est-il possible de tester une case dans un formulaire ACCESS, sans avoir le focus dessus ?
En effet, quand je fais un test sans faire au préalable un
text1.setfocus
il me dis "impossible de faire gnia gnia gnia sans avoir le focus...."

Est-ce qu'il existe un moyen détourné :) de faire ce test ?

voici mon bout de code :

Private Sub Date_GotFocus()
Me.Date.SetFocus
If Me.Date.Text = "" Then
    Me.Date.Text = Day(Now) & "." & Month(Now) & "." & Year(Now)
End If
End Sub


Sylvain

14 réponses

Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
19 juil. 2004 à 13:23
Pourquoi veux-tu le tester sans focus ? Parceque j'ai peut-être une idée...
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
19 juil. 2004 à 14:00
lol, bah ché pas,

parceque à un moment je faisais ce test dans une fonction text_mousemove, donc a chaque fois que je mettais la souris sur le textbox, il me mettais donc le focus, (normal) mais de ce fait, il me sélectionnait le text dedans !

D'autre part, je voudrais le faire sans avoir le focus, car, je travaille sur un bout de code où il faut tester 3 combo, et je suis obligé de faire :
combo1.setfocus
if combo1.text =" " then 
combo2.setfocus
if combo2.text =" " then 
combo3.text = "mavaleur"
end if
end if
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
19 juil. 2004 à 14:42
Au pire, tu peux faire un SetFocus, suivit d'un autre SetFocus pour remettre le focus à l'objet précédent...

Par ex :

Me.date.SetFocus

...blablabla...

Text1.SetFocus

par ex...

Sinon, sans le focus, ça marche pas non plus chez moi
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
19 juil. 2004 à 15:40
Oui voila tout l'interet du probleme,

actuellement je fais un setfocus pour tester ce qui m'intéresse, puis un autre pour revenir la ou j'étais.
Mais le pb c'est que c me lance des boucles qui rebouclent entre elles... :-(

ex :

sub text1_gotfocus()
text2.setfocus
if text2.text ....

end sub

sub text2_gotfocus()
text1.setfocus
if text1.text ....

end sub


tu comprend ce que je veux dire ?

la fonction1 avant de pouvoir faire le test va aller dans la 2, qui va relancer la 1, etc... car un setfocus engendre un gotfocus ^^

Voila pourquoi j'aimerais savoir si on peut tester sans avoir le focus ! ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
19 juil. 2004 à 16:11
hé hé,

tu vas me dire, change ton text1_gotfocus par un text1_click,

j'ai essayé plein de solutions, mais quand je remplace, gotfocus par un click ou un change() ca ne marche plus ! arf !

(ps : j'utilise des combobox liées à des tables, et quand une combo a une certaine valeur, les autres combo doivent avoir une action. Voila pourquoi tous ces tests, mais ... ca marche pô !)

l'idéal serait de tester la combo, sans devoir faire un setfocus d'abord.
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
19 juil. 2004 à 18:36
Oulàlà... ah oui, ok... Bon, attend, je réfléchis ! ;-)
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
19 juil. 2004 à 18:41
Tu pourrais placer une variable qui emp^che le bouclage... par ex :

Public d as boolean

Private Sub Text2_GotFocus()
if d <> true then
d = true
text2.setfocus
...ton code...
end if
end sub

Private Sub Text_GotFocus()
if d <> true then
d = true
text2.setfocus
...ton code...
end if
end sub

Tu voi ce que je veux dire ?
Bon, certes, c'est assez barbare, mais ça marche...
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
20 juil. 2004 à 00:43
Ouais ^^

j'avais déjà testé ! mais ca marche pas...

Je peux pas te filer le bout de code car je suis pas au boulot , la, mais demain je le post, tu verras...
Ca marche plus ou moins, mais pas à 100 % :(

mais merci tu t'acharner ! :)
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
20 juil. 2004 à 08:44
Bon ^^

voilà à peu près ce que ca donne :

1°)->  Private Sub Jour_gotfocus()<-5°) on revient là ! lOl, etc... 
If JourDeja 1 Or moisencour 1 Then
    GoTo Form_Open2_Exit
End If
2°)-> Me.Mois.SetFocus
If Me.Mois.Text = "" Then
     Mon action 
End If

Annee.SetFocus
If Annee.Text  = "" Then
    Mon action
    Mois.SetFocus
    If Mois.Text =   Mon test  Then
        Me.Jour.RowSource  = "Select [Jour].[31Jour] From Jour;"
        GoTo Form_Open_Exit
    End If
    Mois.SetFocus
    If Mois.Text =   Mon test  Then
        Mon action
        GoTo Form_Open_Exit
    End If
    Mois.SetFocus
    If Mois.Text  = Mon test Then
        Mon action
        GoTo Form_Open_Exit
    End If
GoTo Form_Open_Exit
End If

Annee.SetFocus
If (Mon test) Then
    Mois.SetFocus
    If Mois.Text =   Mon test  Then
        Mon action
        GoTo Form_Open_Exit
    End If
    If Mois.Text  = . . .
. . .

Else
    Mois.SetFocus
    If Mois.Text = . . . Then
. . .
    End If
    Mois.SetFocus
    If Mois.Text = . . . Then
. . .
    End If
    Mois.SetFocus
    If Mois.Text = . . . Then
. . .
    End If
GoTo Form_Open_Exit
End If
Me.Jour.SetFocus

Form_Open_Exit:
    JourDeja = 1
    Me.Jour.SetFocus
Form_Open2_Exit:
    JourDeja = 0
    MoisDeja = 0
    Exit Sub
    
End Sub

3°)-> on arrive ici Private Sub Mois_gotfocus()

If MoisDeja = 1 Then
    GoTo Form_Open2_Exit
End If
4°)-> on donne le focus a "jour" pour le tester:
Me.Jour.SetFocus
If Me.Jour.Text > . . . Then
    Jour.Text = ""
    GoTo Form_Open_Exit
End If
    
Form_Open_Exit:
    MoisDeja = 1
    Me.Mois.SetFocus
Form_Open2_Exit:
    MoisDeja = 0
    JourDeja = 0
    Exit Sub
End Sub


Mais, j'ai peut etre une idée.... ^^ je vé voir....
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
20 juil. 2004 à 08:58
Non, bah en fait je vois pas du tout !

Personne sait comment on fait pour tester une case sans avoir le focus ?? ? ? ?

Car en fait même avec toutes les variables inimaginables, des que tu écris x.setfocus tu pars dans x_gotfocus(), et la tu lui dis qu'il a pas a faire x_gotfocus, donc tu le rebalance dans la fonction du départ, mais là... quand tu veux tester ta case, tu écris x.setfocus tu pars dans x_gotfocus(), et la tu lui dis qu'il a pas a faire x_gotfocus, donc tu le rebalance dans la fonction du départ, mais là... quand tu veux tester ta case,
.......
tu écris x.setfocus tu pars dans x_gotfocus(), et la tu lui dis qu'il a pas a faire x_gotfocus, donc tu le rebalance dans la fonction du départ, mais là... quand tu veux tester ta case,
.......
tu écris x.setfocus tu pars dans x_gotfocus(), et la tu lui dis qu'il a pas a faire x_gotfocus, donc tu le rebalance dans la fonction du départ, mais là... quand tu veux tester ta case,
.......
tu écris x.setfocus tu pars dans x_gotfocus(), et la tu lui dis qu'il a pas a faire x_gotfocus, donc tu le rebalance dans la fonction du départ, mais là... quand tu veux tester ta case,

.......

bref.... -> ca plante, enfin, pas exactement, ca tourne sans rien faire :(
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
20 juil. 2004 à 20:37
C'est vraiment la galère ton truc ! :-(

Franchement, je suis désolé, mais je vois vraiment pas.
0
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
21 juil. 2004 à 11:56
Bah, en VB pur tu peux faire ce que tu veux avec tes texbox sans forcément etre dessus, alors qu'en vba +Access, tu pe pô :(
0
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
21 juil. 2004 à 20:36
Et ben met toi au vb, lol
0
zarbiman Messages postés 53 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 20 octobre 2005
14 mars 2005 à 10:44
Salut, j'avais le même problème à propos du setFocus pour les textbox sous Access et j'ai trouvé la solution à cette adresse : http://advisor.com/doc/13056 (
qui a ete donnée sur ce forum par Shivan0910).
La solution consiste donc à utiliser text1.value et non pas text1.text. Selon l'article (en anglais), la propriété value est mise à jour automatiquement à partir de la propriété text lorsque le textbox en question perd le focus.
J'ai essayé chez moi, et j'ai pu affecter un texte à mes textbox, et le récupérer, sans faire de setFocus. Cependant, je n'ai pas encore testé en profondeur, et je ne sais pas si cela implique d'autres complications ou non...

Bonne continuation !!
0
Rejoignez-nous