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

VB 6 et antérieur Discussion :

Fonction Nz dans requête SQL


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 89
    Points : 73
    Points
    73
    Par défaut Fonction Nz dans requête SQL
    Bonjour,

    J'aimerais utiliser la fonction Nz dans une requête sql mais ça ne fonctionne pas sous VB6 (mais ça fonctionne dans Access).

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "Select Episode.[NoDossier], nz(Episode.[DateDeFin], Date()) as Fin FROM Episode"
    La table Episode est branchée sur une BD Access.

    J'ai comme message d'erreur : "Fonction 'Nz' non définie dans l'expression".

    J'aimerais savoir si quelqu'un connait un équivalent qui fonctionnerait.

    Mon but est de faire éventuellement un Max sur DateDeFin et dans le cas où il n'y a pas de DateDeFin, ça veut dire qu'il est toujours actif et dans ce cas, le Max serait "aujourd'hui".

    Notez que les données de la table Episode sont d'abord importées d'un fichier texte (avec la fonction TransferText) que je ne peux modifier. Même si ma table est définie avec une valeur par défaut, lors de l'importation ça n'en tient pas compte.

    J'espère avoir fourni assez de détail.

    Merci pour votre aide!

  2. #2
    jnore
    Invité(e)
    Par défaut
    Pour utiliser nz, n'y a t-il pas une bibliothèque à sélectionner?
    Fais la comparaison avec access puisque tu l'utilises. Peut-être existe t'elle dans VB6.
    Je ne connais pas suffisamment. Essaie quand même

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 89
    Points : 73
    Points
    73
    Par défaut
    Merci pour ton aide!

    La fonction Nz existe (ça vient peut-être avec la référence Microsoft Access 10.0 Object Library que j'ai déjà) et elle fonctionne dans mon programme si je l'appelle sur une ligne de code ordinaire mais pas dans la requête SQL.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Text6 = Nz(rs!Fin, #1/1/2007#)
    me retourne bien 01-01-2007 lorsque rs!Fin est null.

    Merci

  4. #4
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Que fait nz exactement ?? tu pourais te servir de la fonction Format s'il sagit d'une mise en forme.
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  5. #5
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 89
    Points : 73
    Points
    73
    Par défaut
    La fonction Nz retourne la valeur du 2e argument si le premier est null, sinon il retourne le premier argument.

    donc dans l'exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Text6 = Nz(rs!Fin, #1/1/2007#)
    si rs!Fin est null alors Text6 prend la valeur 01-01-2007; si rs!Fin n'est pas null alors Text6 prend la valeur de rs!Fin.

    En fait, ça peut se traduite pas le code suivant je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If IsNull(rs!Fin) then
        Text6 = #1/1/2007#
    Else
        Text6 = rs!Fin
    EndIf
    Le problème c'est que je ne peux pas écrire un "If-Then-Else" dans ma requête.

    Dans mes recherches, j'ai trouvé "COALESCE" et "IsNull" qui semble fonctionner avec SQL server mais ça ne fonctionne pas dans mon cas (je suis branché sur une BD Access avec Microsoft Jet OLEDB 4.0).

  6. #6
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Les requetes access accemptent IIF(Expresion,ValeurVraie,ValeurFausse)
    Ca peut peut être aider
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  7. #7
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 89
    Points : 73
    Points
    73
    Par défaut
    Super, ça fonctionne!

    Merci à tous pour votre aide!

  8. #8
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Sous Access il y'a beaucoup de fonctions (nz, round, ...) qui ne sont pas reconnue par le pilote ODBC. Un sous-ensemble des fonctions scalaires ODBC pris en charge est disponible dans l'aide de Access
    Scuse me while I kiss the sky ! Jimi Hendrix

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

Discussions similaires

  1. [PHP 4] Problème fonction dans requête SQL
    Par fayssal_db2 dans le forum Langage
    Réponses: 5
    Dernier message: 25/08/2011, 12h23
  2. [SQL] Résultat de fonction php non valide dans requête SQL
    Par darksnake dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/12/2007, 13h44
  3. Fonction si dans requête SQL ?
    Par leeloo35 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/09/2007, 08h13
  4. [VB6]Fonction dans requête SQL Access
    Par jean-pierre96 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/04/2006, 19h44
  5. ASP et valeur NULL dans requêtes SQL
    Par chuck_m dans le forum ASP
    Réponses: 7
    Dernier message: 13/08/2004, 11h15

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