Access 2002

Fermé
babette63 - 27 mars 2012 à 16:42
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 - 27 mars 2012 à 21:23
Bonjour,

je me sert d'une requête pour créer un tableau excel
mais j'aimerai que toutes les cellules de ma reqûete soient remplies, soit par la bonne valeur ou par défaut à zéro comment faire
merci pour votre aide
babette63

1 réponse

OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
27 mars 2012 à 21:23
Il y a plusieurs possibilités :
1) Dans votre requête, utiliser la fonction IsNull.
Exemple :
Imaginons que vous ayez une table "Employes", avec un champ Nom et Salaire.
SELECT IsNull([Nom];'Nom Absent'), IsNull([Salaire];0) Salaire
From Employes;
Cette requête retournera 'Nom absent' si le champ "Nom" n'a pas été remplit. Même chose avec le champ Salaire.

2) Modifier la même table, et dans la propriété valeur par défaut du champ Salaire, indiquer 0. Lorsque vous ajouterez un nouvel enregistrement dans votre table, si dans le champ Salaire, rien n'est spécifié, sa valeur sera zéro.

Remarque : Dans MS Access comme dans pas mal de base de données, la valeur Null est différent d'un champ "vide", comme par exemple un nom qui a été remplit et ensuite effacé. Le champ ne sera plus null mais équivalent à "" !
C'est une erreur que font souvent les développeurs en VBA par exemple.
J'explique :
If Not IsNull([txtNom]) Then

   MaVariable = [txtNom]
   ' L'erreur ici est que la zone de texte "txtNom" pourrait être non nulle mais vide !
   ' Il faut donc y ajouter ceci :
   If txtNom.value <> '' Then
      ' Code ...
   Else
         MsgBox "Nom absent !"
   End If
Else
  ' Code ...
         MsgBox "Nom absent !"
End If
0