OVH Cloud OVH Cloud

Gestion des erreurs - IsNull - cmbBox

3 réponses
Avatar
f.janko
Bonjour à tous,

Pour forcer la saisie de certains champs, de type liste déroulante,
d'un formulaire, j'ai placé ce code sur l'événement "sur erreur" du
dit formulaire :

If DataErr = 3201 Or DataErr = 2169 Then

If Nz(Me![cmbThème], 0) = 0 Or IsNull(Me.cmbThème) Then
MsgBox "Le Thème de l'anomalie doit" & _
vbCrLf & "obligatoirement être renseigné !", vbInformation, "Attention
- " & pconNomAppli
ElseIf Str(Nz(Me![cmbOrigine], 0)) = 0 .....
...
Response = acDataErrContinue
End If

Ce code fonctionne parfaitement lorsque l'utilisateur omet de saisir
le thème (la valeur de la liste est alors égale à 0). Par contre, ce
code ne fonctionne plus lorsque l'utilisateur renseigne le champ, puis
l'efface (la valeur de la liste est alors égale à Null).
Le test If Isnull(Me.cmbThème) ne sert semble-t-il à rien, alors qu'un
test dans la fenêtre execution indique bien la valeur null pour la
liste.
Je ne comprends pas ? Et vous ?

Janko

3 réponses

Avatar
Jeff
Bonjour

A tout hasard, aurais-tu essayé avec :

...
If Len(Trim(Me![cmbThème])) = 0 Or IsNull(Me.cmbThème) Then
...

Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Janko" a écrit dans le message de
news:
Bonjour à tous,

Pour forcer la saisie de certains champs, de type liste déroulante,
d'un formulaire, j'ai placé ce code sur l'événement "sur erreur" du
dit formulaire :

If DataErr = 3201 Or DataErr = 2169 Then

If Nz(Me![cmbThème], 0) = 0 Or IsNull(Me.cmbThème) Then
MsgBox "Le Thème de l'anomalie doit" & _
vbCrLf & "obligatoirement être renseigné !", vbInformation, "Attention
- " & pconNomAppli
ElseIf Str(Nz(Me![cmbOrigine], 0)) = 0 .....
...
Response = acDataErrContinue
End If

Ce code fonctionne parfaitement lorsque l'utilisateur omet de saisir
le thème (la valeur de la liste est alors égale à 0). Par contre, ce
code ne fonctionne plus lorsque l'utilisateur renseigne le champ, puis
l'efface (la valeur de la liste est alors égale à Null).
Le test If Isnull(Me.cmbThème) ne sert semble-t-il à rien, alors qu'un
test dans la fenêtre execution indique bien la valeur null pour la
liste.
Je ne comprends pas ? Et vous ?

Janko


Avatar
f.janko
Bonjour,

Effectivement la seconde condition n'est pas utile ici. Seulement,
cela induit que la première If str(Nz(Me![cmbThème],0)) = 0 Then ...
ne fonctionne pas ! La valeur Null de la cmbBox n'est pas modifiée, et
ce même en essayant la proposition de Jeff
len(Trim(Nz(Me![cmbThème],0))).
Quand la valeur de la liste est Null, elle reste Null et moi avec !
Est-ce un souci de type Variant ??!

Janko
Avatar
Raymond
Bonjour.

seule une donnée de type variant peut recevoir (gérer) une valeur Null. voir
aide en ligne
Variant est un type de données spécial pouvant contenir des données de
toutes sortes, à l'exception des données de type String de longueur fixe. Le
type Variant prend désormais en charge les types définis par l'utilisateur.
Une variable de type Variant peut également contenir les valeurs Empty,
Error, Nothing et Null.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.



"Janko" a écrit dans le message de
news:
Bonjour,

Effectivement la seconde condition n'est pas utile ici. Seulement,
cela induit que la première If str(Nz(Me![cmbThème],0)) = 0 Then ...
ne fonctionne pas ! La valeur Null de la cmbBox n'est pas modifiée, et
ce même en essayant la proposition de Jeff
len(Trim(Nz(Me![cmbThème],0))).
Quand la valeur de la liste est Null, elle reste Null et moi avec !
Est-ce un souci de type Variant ??!

Janko