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

Requêtes et SQL. Discussion :

champ vide et message d'erreur


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut champ vide et message d'erreur
    Bonjour,
    Je fais une fonction dans une requête dans access qui fait la fusion de deux champ.

    Le problème c'est que lorsque je fais directement cette fusion (concatiner) dans le générateur d'expression de la requête ça marche bien :
    Chaine1 & " ----- " & Chaine2 & " "


    Mais quand je passe par VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function Fusion_note(Chaine1 As String, Chaine2 As String) As String
    Fusion_note = "" & Chaine1 & " ---- " & " " & Chaine2
    End Function
    j'obitient un message (#Erreur) comme résultat lorsque le champ1 ou le champ2 ou les deux sont vide ?


    merci de me répondre

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    je pense qu'en passant des variants à la fonction ca devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public FUNCTION Fusion_note(Chaine1 AS Variant, Chaine2 AS Variant) AS String
    Fusion_note = "" & Chaine1 & " ---- " & " " & Chaine2
    End FUNCTION
    cordialement,

    Philippe

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Tu peut aussi utiliser la fonction Nz pour remplacer tes valeurs nulles par la valeur 0, ou "" dans ton cas

    ça marche avec les entiers en tous cas

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par philben
    bonjour,

    je pense qu'en passant des variants à la fonction ca devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public FUNCTION Fusion_note(Chaine1 AS Variant, Chaine2 AS Variant) AS String
    Fusion_note = "" & Chaine1 & " ---- " & " " & Chaine2
    End FUNCTION
    cordialement,

    Philippe
    merci, mais il y a toujours la valeur "#Erreur" lorsque un des champ est vide :?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2006
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Tu as essayé la fonction Nz ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Bqrt37
    Tu as essayé la fonction Nz ?
    voici un exemple de ma requête : exemple.zip
    dans la requête j'ai illustré le cas en passant par une fonction de VBA et le cas en utilisant le générateur d'expression.

    a+
    Fichiers attachés Fichiers attachés

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    j'ai testé ma solution et ça fonctionne, je n'ai plus d'erreur...
    J'utilise Access 2003.

    Je vous propose ça mais sans aucune certitude : On retourne aussi un variant et on utilise NZ (comme proposé par bqrt37)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function Fusion_note(Chaine1 As Variant, Chaine2 As Variant) As Variant
    Fusion_note = Nz(Chaine1, "") & " ---- " & Nz(Chaine2, "")
    End Function
    En espérant que...

    philippe

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par philben
    bonjour,

    j'ai testé ma solution et ça fonctionne, je n'ai plus d'erreur...
    J'utilise Access 2003.

    Je vous propose ça mais sans aucune certitude : On retourne aussi un variant et on utilise NZ (comme proposé par bqrt37)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function Fusion_note(Chaine1 As Variant, Chaine2 As Variant) As Variant
    Fusion_note = Nz(Chaine1, "") & " ---- " & Nz(Chaine2, "")
    End Function
    En espérant que...

    philippe

    merci c'est parfait....

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

Discussions similaires

  1. formulaire,champs manquants et message d'erreur
    Par huître dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/02/2012, 15h33
  2. message d'erreur quand un champs est vide
    Par VIRGINIE87 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/02/2007, 12h13
  3. messages si champs "vides", le retour
    Par kgb1917 dans le forum Access
    Réponses: 3
    Dernier message: 18/07/2006, 19h10
  4. message d'erreur lorsque j'essaie de changer la valeur d'un champ.
    Par cladsam dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/06/2006, 14h00
  5. [C#] Message d'erreur vide dans une replication et rda
    Par Roach- dans le forum Windows Forms
    Réponses: 25
    Dernier message: 05/04/2005, 15h19

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