Formulaire access

ludo -  
 ludo -
salut !

j'ai créé un formulaire à deux champs "nom, prénom" et un bouton de commande qui permet d'insérer les donnés dans la table à l'aide d'une commande sql. mais j'ai défini les paramétres de nom et prénom dans ma table comme non NULL donc dans mon bouton de commande j'ai insérer le script suivant :

if ( [forms]![enregistrement]![nom] = NUll) then
msgbox ("Vous devez entrer votre nom !")
else
if([forms]![enregistrement]![prenom] = Null) then
msgbox('vous devez entrer votre prénom")
else
DoCmd.RunSQL("INSERT INTO matable VALUES ([forms]![enregistreemnt]![nom],[forms]![enregistrement]![prenom]);")
DoCmd.Requery
end if
end if

enregistrement étant le nom de mon formulaire!

et en fait il ne tiens pas compte de mes conditions "if" et passe directement à l'insertion des donnés sachant que c impossible puisqu' ils doivent être non null comme je l'ai expliqué au début donc j'ai un message d'erreur " mauvaise utilisation de la fonction null" alors j'ai rempacé null par "" mais ça ne fonctionne pas!
pouvez vous me dire ce qui ne vas pas ?
à mon avis c le [forms]![enregistrement]![qqch] dans ce cas comment faire pour récupérer a valeur ?

merci d'avance

1 réponse

blux Messages postés 27992 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Salut,

en fait c'est tout bête, mais pour tester le "null" il faut plutôt utiliser la fonction ISNULL :

If IsNull([forms]![enregistrement]![nom]) THEN...

Le test avec "" signifierait que le champ a une valeur à blanc, mais n'est pas null. En effet, il y a une différence entre "vide" et "null" :

Null : il n'y a jamais eu de valeur dedans, valeur indéterminée
"" : une valeur existe, elle est à blanc

Ca irait comme explications ? :-)

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
ludo
 
ouais c cool merci beaucoup
cependant est ce normal que ma requte sql ne fonctionne plus il me met une erreur du genre "microsoft access a attribue la valeur null à 1 champ à la suite d'une erreur de conversion de type , bla bla bla ..

est ce que ça a un rapport ?
0
blux Messages postés 27992 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
peut-être que les données que tu essayes de rentrer en table ne sont pas du bon type (alphanum dans num, booleen...)

il faudrait que tu affiches le contenu de tes variables pour te faire une idée et voir si elles sont conformes à la structure de la table...

autre piste : ta table comprend-elle bien 2 colonnes et juste 2 ?
parce si tu essayes d'insérer une ligne de 2 colonnes dans une table qui comprend 3 ou 4 colonnes, il ne pourra pas inventer la valeur des colonnes manquantes et va sûrement essayer de les remplir avee du NULL...

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
ludo > blux Messages postés 27992 Date d'inscription   Statut Modérateur Dernière intervention  
 
ouais enfin ma table est un peu plus compliqué que ça, j'avais pris nom et prénom en guise d'exemple !
mais c bon en fait j'avais un conflit entre mes paramètre de type date.

merci beaucoup pour ton aide !
0