IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Passer une valeur Null dans un argument de procédure [Débutant(e)]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Passer une valeur Null dans un argument de procédure
    bonjour,
    Je développe une base de données en vba sous access 97,
    je finalise le produit et crée des fonctions,

    comment faire accepter à une procédure un argument null ?

    en effet, l'utilisateur peut très bien ne pas renseigner la valeur, alors y'a un moyen d'éviter de considérer les différents cas et de n'écrire qu'une seule fois la commande ?

    Merci de votre aide et bonne journée,
    Baptiste

  2. #2
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Un exemple de procédure avec des paramètres facultatifs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub proc(Optional ByVal i As Integer = -1)
    Par défaut, si on appelle proc(), i aura la valeur -1.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    le optional marche,
    mais dès lors que mon argument optionnel EDateModif est null, je me fais jeter...

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    tu peux entrer un NULL dans un argument de type Variant
    Reste a faire tes tests dans ta fonction ensuite.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Excusez-moi d'intervenir un peu tard dans vos débats mais je vois que personne ne fait allusion à la très pratique fonction NZ.

    Moi, au contraire, j'adore utiliser les valeurs NULL because elles permettent de faire la différence entre chaine vide et zéro d'une part et absence de valeur d'autre part. En outre, elles ne s'opposent pas aux relations d'intégrité, ce qui est génial.

    Quant aux fonctions, il suffit de prendre une bien peu coûteuse précaution lors de l'appel du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Abc = MaFonction(NZ(MonParametre))
    Dans le code de la fonction, si le paramètre au départ est NULL, on récupère une chaine vide en alpha et zéro en numérique.

    Maintenant, il peut arriver (en numérique) que zéro corresponde logiquement à une valeur bien précise de l'application et non à l'absence de valeur. Qu'à cela ne tienne ! il suffit de se réserver une valeur inutilisable (exemple : -999) et de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Abc = MaFonction(NZ(MonParametre, -999))
    C'est juste mon avis !

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    merci c'est cool, c'est un peu du bricolage, mais ça m'aide pas mal !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Saisir une valeur null dans 1 champ de ma table
    Par User dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2007, 23h40
  2. Réponses: 4
    Dernier message: 05/03/2007, 14h53
  3. Réponses: 3
    Dernier message: 10/08/2005, 11h11
  4. Inserer une valeur NULL dans un champ datetime
    Par Karibou dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/08/2005, 10h58
  5. Affcecter une valeur NULL dans une requete paramétrée
    Par thiouwz2 dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/11/2004, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo