VBA Pas IsNull
Travailler avec du code VBA dans Access que lorsqu'un ensemble très spécifique de conditions sont réunies, il fera apparaître une boîte de dialogue demandant un nombre entier. So far So good.
Private Sub Command10_Click()
If Not IsNull(mrf) Then
If min <> max Then
If qty <= min Then
mrf = GetParamValue
End If
End If
End If
End Sub
Le problème est que le Pas IsNull semble être ignoré. Je tiens à demander une valeur à entrer, sauf si une valeur est déjà présente. Cette garde de tir au large de la InputBox tant que le min <> max et qté <= min conditions sont remplies. Ce qui me manque ici?
- Ahh ressemble à mon problème vient d'ailleurs.
Vous devez vous connecter pour publier un commentaire.
Si
mrf
est Variante, puis c'est d'abordEmpty
, pasNull
. Par conséquent, vous devez utiliserIsEmpty()
fonction.Non, le Pas IsNull fonctionne parfaitement.
Rappelez-vous, IsNull est une fonction qui renvoie TRUE si le paramètre passé est null, false sinon.
Votre "Si Pas IsNull(mrf), Puis" déclaration traduit en anglais par "Si mrf n'est pas null,"
ce que cela signifie est que lorsque la mfr a une valeur, alors vous êtes sur le traitement le code à l'intérieur de l'instruction if. Si vous êtes désireux de le interne code à feu lors de la mrf EST nulle, alors vous devez supprimer le PAS de la déclaration.
Ma conjecture est que les mrf n'est pas nulle, même si elle est vide ou quelque chose d'autre. Il pourrait également être Rien, ce qui est différent de null dans VBA terre (je pense). Essayez d'exécuter le code dans le débogueur et en regardant la valeur de la mfr. Selon ce mrf est, vous pouvez faire un test (comme vérifier len(mfr) ou pas isNothing(mfr) ou si c'est un entier, et c'est l'initialisation à zéro, alors la mfr de <> 0.... vous obtenez l'idée. Espérons que ça aide!
Vous pourriez être intéressé dans cette pièce sur VB6/VBA/nothing/vide:
http://blogs.msdn.com/ericlippert/archive/2003/09/30/53120.aspx