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   -
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 !
A voir également:

6 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Tu peux nous en dire plus ? c'est quel cadre que tu as besoin de ça ?

;o)
0
Kahra Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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)
0
blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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.
0
Kahra Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Essaie de rentrer ce que j'ai mis dans la zone 'masque de saisie' de ton champ.
0

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

Posez votre question
Kahra Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
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 :)
0
blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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...
0
Kahra Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Nickel !

Tout marche bien dans le meilleur des mondes, merci blux !
0