J'ai un sous formulaire en mode continus, avec VBA je voudrai que lorsque
celui-ci reçoit le focus que tous les enregistrements soient parcourus en
entrant dans un champ, du premier au dernier et quand il trouve un champ
vide le curseur doit atteindre un champ dans le formulaire principal.
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
david
salut,
un truc du style (avec cnx la connexion à ta base de données, ctrlDest le contrôle à atteindre dans ton formulaire principal) : 'dans le code du sous-form private sub form_gotfocus() 'On compte le nombre de valeurs Null dans le champ chp dim rst as recordset
set rst=cnx.execute("SELECT Count(*) As Nb FROM MaTable WHERE IsNull(chp);") if rst.eof then nb=0 else nb=rst.fields("Nb") end if rst.close: set rst=nothing if nb=0 then me.parent.ctrlDest.setFocus; me.parent.setFocus; end if end sub
salut,
un truc du style (avec cnx la connexion à ta base de données,
ctrlDest le contrôle à atteindre dans ton formulaire principal) :
'dans le code du sous-form
private sub form_gotfocus()
'On compte le nombre de valeurs Null dans le champ chp
dim rst as recordset
set rst=cnx.execute("SELECT Count(*) As Nb FROM MaTable WHERE
IsNull(chp);")
if rst.eof then
nb=0
else
nb=rst.fields("Nb")
end if
rst.close: set rst=nothing
if nb=0 then
me.parent.ctrlDest.setFocus;
me.parent.setFocus;
end if
end sub
un truc du style (avec cnx la connexion à ta base de données, ctrlDest le contrôle à atteindre dans ton formulaire principal) : 'dans le code du sous-form private sub form_gotfocus() 'On compte le nombre de valeurs Null dans le champ chp dim rst as recordset
set rst=cnx.execute("SELECT Count(*) As Nb FROM MaTable WHERE IsNull(chp);") if rst.eof then nb=0 else nb=rst.fields("Nb") end if rst.close: set rst=nothing if nb=0 then me.parent.ctrlDest.setFocus; me.parent.setFocus; end if end sub