Syntaxe VBA Access 2003
Kahra
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
Kahra Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Kahra Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
bon j'ai créer un formulaire dans access 2003, je dois faire une procédure événementielle mais je galère bien sur la syntaxe qui doit être toute simple. Si qq pouvait me traduire ceci en vba :
Création de la variable x comme un nombre à virgule
Si valeur de la zone de texte zt1 est un nombre
x=valeur de zt1 * valeur de la troisième colonne de la zl1 / valeur de la troisième colonne de la zl2
Merci !
bon j'ai créer un formulaire dans access 2003, je dois faire une procédure événementielle mais je galère bien sur la syntaxe qui doit être toute simple. Si qq pouvait me traduire ceci en vba :
Création de la variable x comme un nombre à virgule
Si valeur de la zone de texte zt1 est un nombre
x=valeur de zt1 * valeur de la troisième colonne de la zl1 / valeur de la troisième colonne de la zl2
Merci !
A voir également:
- Syntaxe VBA Access 2003
- Office 2003 - Télécharger - Bureautique
- Acer quick access - Forum logiciel systeme
- Quick Access service ✓ - Forum PC portable
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
- Access appdata - Guide
6 réponses
Quel cadre ? euh je comprend pas ce que je dois préciser ?
Pour la declaration j'ai mit un
Dim x as single
mais c'est pour la suite ?
en faite, je voudrais plutôt ceci :
-la syntaxe de :
Si valeur de la zone de texte zt1 n'est pas vide
x=valeur de zt1 * valeur de la troisième colonne de la zl1 / valeur de la troisième colonne de la zl2
-et empêcher de rentrer autre chose qu'un nombre dans cette zt1, je ne sais pas si cela se fait via les champs de propriétés ?
-dernier point : je voudrais que la zt2 soit "grisé", qu'il soit impossible d'y rentrer une valeur, qu'elle ne donne qu'un affichage (un peu comme les labels)
Pour la declaration j'ai mit un
Dim x as single
mais c'est pour la suite ?
en faite, je voudrais plutôt ceci :
-la syntaxe de :
Si valeur de la zone de texte zt1 n'est pas vide
x=valeur de zt1 * valeur de la troisième colonne de la zl1 / valeur de la troisième colonne de la zl2
-et empêcher de rentrer autre chose qu'un nombre dans cette zt1, je ne sais pas si cela se fait via les champs de propriétés ?
-dernier point : je voudrais que la zt2 soit "grisé", qu'il soit impossible d'y rentrer une valeur, qu'elle ne donne qu'un affichage (un peu comme les labels)
Salut,
pour la zone de texte, il faut se méfier du 'vide', car selon les cas, ce peut être à blanc ou alors NULL. Donc les tests seront différents.
Mais ça peut donner un truc comme ça :
if not isnull(zt1.value) then
x = zt1.value * zl1.column(2).value / zl2.column(2).value
end if
Mais on suppose que zl1 et zl2 sont des zones de liste.
Pour empêcher la saisie d'autre chose que des nombres, il faut voir les propriétés du champ, et bricoler un masque de saisie genre : !############;;" "
Pour verrouiller un champ : propriétés, onglet 'données', activer = non, verrouillé = oui.
pour la zone de texte, il faut se méfier du 'vide', car selon les cas, ce peut être à blanc ou alors NULL. Donc les tests seront différents.
Mais ça peut donner un truc comme ça :
if not isnull(zt1.value) then
x = zt1.value * zl1.column(2).value / zl2.column(2).value
end if
Mais on suppose que zl1 et zl2 sont des zones de liste.
Pour empêcher la saisie d'autre chose que des nombres, il faut voir les propriétés du champ, et bricoler un masque de saisie genre : !############;;" "
Pour verrouiller un champ : propriétés, onglet 'données', activer = non, verrouillé = oui.
Ok merci beaucoup,je vais tester sa !
Ce sont bien des zone de liste.
Il y a juste pour le masque de saisie que je n'ai pas compris ?
Ce sont bien des zone de liste.
Il y a juste pour le masque de saisie que je n'ai pas compris ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tout d'abord, pour le verrouiller sa marche impec
En fait je n'ai pas besoin de x,
j'ai donc remis la même chose mais avec :
zt2.value = zt1.value * zl1.column(2).value / zl2.column(2).value
et la, lorsque je clique sur la zt1, message d'erreur "Objet requis" qui me pointe cette ligne avec le debogage,
j'ai mis cette macro "sur changement de la zt1".
Le masque de saisie j'ai trouvé le champ mais je ne sais pas quoi y rentrer (ce que tu donne empêche bien les lettres mais n'est pas génial : un vilain soulignement apparait, on ne peut mettre de virgule et la taille est limité)
Je me permet une derniere demande : dans ma zl, j'ai 3 champs, ils apparaissent selon la taille que je leurs ai attribué dans la liste, mais la valeur sélectionné n'affiche que la première colonne, comment afficher les autres ?
Merci de ta patience :)
En fait je n'ai pas besoin de x,
j'ai donc remis la même chose mais avec :
zt2.value = zt1.value * zl1.column(2).value / zl2.column(2).value
et la, lorsque je clique sur la zt1, message d'erreur "Objet requis" qui me pointe cette ligne avec le debogage,
j'ai mis cette macro "sur changement de la zt1".
Le masque de saisie j'ai trouvé le champ mais je ne sais pas quoi y rentrer (ce que tu donne empêche bien les lettres mais n'est pas génial : un vilain soulignement apparait, on ne peut mettre de virgule et la taille est limité)
Je me permet une derniere demande : dans ma zl, j'ai 3 champs, ils apparaissent selon la taille que je leurs ai attribué dans la liste, mais la valeur sélectionné n'affiche que la première colonne, comment afficher les autres ?
Merci de ta patience :)
essaie de supprimer les .value pour la récupération des données des listbox...
pour la saisie, les masques, c'est bien, mais c'est chiant, par contre, tu peux laisser saisir n'importe quoi et faire un test ensuite avant de faire tes calculs :
if isnumeric(zt1.value) then
...
else
...
end if
Pour l'affichage des n colonnes, il faut passer en "zone de liste" au lieu de "zone de liste déroulante", ça prend plus de place, mais on affiche ce qu'on veut...
pour la saisie, les masques, c'est bien, mais c'est chiant, par contre, tu peux laisser saisir n'importe quoi et faire un test ensuite avant de faire tes calculs :
if isnumeric(zt1.value) then
...
else
...
end if
Pour l'affichage des n colonnes, il faut passer en "zone de liste" au lieu de "zone de liste déroulante", ça prend plus de place, mais on affiche ce qu'on veut...