Access = fonction IF/THEN suivant textbox

Fermé
HELD_tokyo Messages postés 51 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 19 janvier 2010 - 13 janv. 2009 à 10:58
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 - 16 janv. 2009 à 09:07
Bonjour a tous,

J'ai une petite question de code.
J'ai un formulaire de saisie qui contient un champ obligatoire = Fx
En bas de ce formulaire, j'ai un bouton sur lequel je souhaiterais affecter la fonction suivante :

Si Fx n'est pas rempli, alors ouvrir le form ERRORFX qui est un message d'erreur
Sinon
Ouvrir la requete Advanced Search

J'ai essaye ca mais ca ne marche pas...

Private Sub Search_Click()
If Forms![finder SL]![fx] = "Null" Then
DoCmd.OpenForm (Forms![errorfx]),
Else
DoCmd.OpenQuery(Queries![AdvancedSearch]), acViewNormal, acReadOnly)
End If

End Sub

Merci pour votre aide!

6 réponses

tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
13 janv. 2009 à 11:07
Salut,

Je ne suis pas vraiment un programmeur VBA, mais je vois que vous avez comparez avec "Null": donc la valeur de la chaine de caractère "Null", je pense que vous devez comparez avec "" (chaine vide) ou utiliser
is nothing
pour la valeur null.
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
13 janv. 2009 à 12:26
Salut,

le test null se fait avec la fonction IsNull...

IF IsNull(pouet.value) THEN
...
0
Salut,

je ne sais pas si "is null" est reconnu.

essaye quelque chose comme

if fx.text = "" then
.
.
else
.
.
end if
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
13 janv. 2009 à 14:08
IsNull (en un seul mot) est une des nombreuses fonctions d'access...
0

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

Posez votre question
HELD_tokyo Messages postés 51 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 19 janvier 2010 1
15 janv. 2009 à 11:13
marche pas avec la syntaxe Is null...
je dois etre null aussi :)

Private Sub Search_Click()
If IsNull([Forms]![finder SL]![fx]) Then
DoCmd.OpenForm ([Forms]![errorfx])
Else
DoCmd.OpenQuery ([Queries]![AdvancedSearch]), acViewNormal, acReadOnly
End If

End Sub

Ou est l'erreur ?

Merci beaucoup

Held
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
15 janv. 2009 à 11:50
Il faut tester quelque chose !

If IsNull([Forms]![finder SL]![fx].text) ou
If IsNull([Forms]![finder SL]![fx].value)
0
HELD_tokyo Messages postés 51 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 19 janvier 2010 1
16 janv. 2009 à 01:28
Bonjour Blux

Dabord merci pour ton suivi.

Je viens de tester les deux fonctions et ca ne marche toujours pas.

En fait pour faire simple, j'ai un petit formulaire avec 3 criteres. En bas, un bouton pour lancer la requete associee au 3 criteres en question.

2 criteres sont des menus liste et fonctionnent tres bien. le troisieme est un champ de saisie, et ce champ est obligatoire.
je souhaite simplement rendre cette cellule obligatoire. Or dans les proprietes de ma cellule, je ne trouve pas l'option qui permet de rendre la saisie obligatoire, elle a disparue semble t-il.

Comment faire ? J'ai creer un petit message d'erreur, et jessaye d'appliquer cette formule :
sur click, si le champ de saisie est vide, alors lance le message derreur qui est un petit formulaire.
sinon, lancer la requete.

Merci pour tes lumieres!

Helder
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
16 janv. 2009 à 09:07
En informatique, null n'est du tout équivalent à vide. Dansn un cas, la valeur null peut vouloir dire : n'a jamais été utilisé, alors que la valeur vide peut vouloir dire : ne contient rien, ce qui est qand même différent.

As-tu testé comme l'indiquait tobec en message 3, la syntaxe :

If ([Forms]![finder SL]![fx].text) = "" ou
If ([Forms]![finder SL]![fx].value) = ""
0