Rechercher : dans
Par :

Pb en vba : traitement chaîne vide = Null

Dernière réponse le 31 mar 2005 à 10:11:03 Jenni, le 31 mar 2005 à 08:47:40 
 Signaler ce message aux modérateurs

J'ai créé un formulaire de recherche par mot clef sous access avec un text box nommé "mot_clef" et un bouton qui me permet d'ouvrir un autre formulaire.
Je souhaite obliger l'utilisateur à renseigner le text box.
J'ai donc fait un contrôle dans mon bouton qui est le suivant :

Private Sub Commande7_Click()

If mot_clef = Null Then
MsgBox ("Veuillez préciser ...")
Else
'Ouverture du formulaire
...
End If

End Sub

Lorsque que mon champ est vide, il reconnait que mot_mot=Null et que Null=Null, mais le problème, c'est que malgrès ça, il passe directement au sinon.
J'aimerai avoir une soution. Merci.

Meilleures réponses pour « pb en vba : traitement chaîne vide = Null » dans :
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Télécharger VirtualDub VoirVirtualDub est un utiltaire de capture et de traitement de vidéos pour les plateformes Windows 32-bit (98/ME/NT4/2000/XP/Vista). VirtualDub est un logiciel libre possédant de nombreuses fonctionnalités. Il possède en outre des capacités de...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...

1

DestyNov@, le 31 mar 2005 à 08:51:02

Salut =)

il faut peut-être initialisée ta variable à Null avant de mettre le contenu de ton text box dedans.

Ou bien réaliser ton test en faisant :

if (mot_clef=="") Then


Comme ça il teste plutot si la chaine est vide. car une chaine vide est différente de la valeur Null (en C en tout cas, en VB je ne sais pas.)

++

Répondre à DestyNov@

2

Jenni, le 31 mar 2005 à 08:59:44

Je sais, en C on fait comme ça, mais en vb, on ne peut pas mettre de double =.
J'ai testé aussi:
mot_clef=""
mot_clef=" "

Enfin, merci quand même.
Jenni.

Répondre à Jenni

3

DestyNov@, le 31 mar 2005 à 09:07:27

Essaie la fonction IsEmpty(), ça devrait marcher (enfin j'espère !)

++ =)

Répondre à DestyNov@

4

Jenni, le 31 mar 2005 à 09:23:57

Ok, je vais voir si ça marche.
Merci.

Répondre à Jenni

5

Jenni, le 31 mar 2005 à 09:33:36

Effectivement, ça fonctionne, merci bcp.

Répondre à Jenni

6

Jenni, le 31 mar 2005 à 09:49:28

Ceci fonctionne que si la chaine est vide

MyVar = Null ' Affectation de Null.
MyCheck = IsEmpty(MyVar) ' Renvoie False.

MyVar = Empty ' Affectation de Empty.
MyCheck = IsEmpty(MyVar) ' Renvoie True.

si la chaîne est pleine, il faut lui affecter "empty"

et on retombe sur le même problème.

Répondre à Jenni

7

DestyNov@, le 31 mar 2005 à 09:56:06

C'est quand bizarre, je viens de tester ça :

Private Sub CommandButton1_Click()
    my = TextBox1.Value
    If my = "" Then
        MsgBox "vide"
    Else
        MsgBox "pleine"
    End If
End Sub

et ça marche nickel !!!

sinon j'ai pas bien compris ton dernier post, car si tu l'initialises à Null, après tu fais un MyVar = TextBox1.Value, tu la testes et pis vala. nan ?

Répondre à DestyNov@

8

 Jenni, le 31 mar 2005 à 10:11:03
  • +3

Moi, ça ne marché pas, peut être que je l'ai mal utilisé.
Du coup, j'ai trouvé une autre fonction IsNull() et ça fonctionne, donc c'est cool.
Merci.
Jenni.

Répondre à Jenni