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 :

Requête qui renvoie 'Null'


Sujet :

VB 6 et antérieur

  1. #1
    Invit-é
    Invité(e)
    Par défaut Requête qui renvoie 'Null'
    Bonjour,

    Travaillant une base Access avec une interface VB6, je remplis des textbox et autres combobox avec les résultats des requêtes. Cependant, je coince quand la requête me renvoie un champ vide. Comment faire pour qu'il contourne le champ vide ou qu'il en prenne compte et ne plante pas ?

    Merci.
    Bonne journée !
    Dernière modification par Invit-é ; 11/06/2007 à 15h03. Motif: Modif du titre du topic

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Pourquoi ça plante ? Tu ne fais pas de test ?
    Si ça plante, montre nous du code et dis nous à quelle ligne ça arrive.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  3. #3
    Invit-é
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        ' Infos du Contact
        rs.Close
        reqinfocontact = "SELECT DISTINCT contact.titrecontact, contact.prenomcontact, contact.postecontact, contact.telcontact, contact.faxcontact FROM contact INNER JOIN (branche INNER JOIN representer_par ON branche.numbranche = representer_par.numbranche) ON contact.numcontact = representer_par.numcontact WHERE (branche.nombranche = " & Chr(34) & dcentreprise.CmbModifEntNomBranche.Text & Chr(34) & ") AND (" & Chr(34) & dcentreprise.CmbModifEntNomContact.Text & Chr(34) & ")"
        Set rs = New ADODB.Recordset
        rs.Open reqinfocontact, cn, adOpenKeyset, adLockOptimistic, -1
        dcentreprise.TxtModifEntTitreContact.Text = rs.Fields(0).Value
        dcentreprise.TxtModifEntPrenomContact.Text = rs.Fields(1).Value
        dcentreprise.TxtModifEntPosteContact.Text = rs.Fields(2).Value
        dcentreprise.TxtModifEntTel.Text = rs.Fields(3).Value
        dcentreprise.TxtModifEntFax.Text = rs.Fields(4).Value
    Voilà le morceau de code et ça plante sur les deux dernières lignes (je n'ai pas le numéro de tél et de fax du contact).

  4. #4
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Bonjour,

    Un petit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If xxxxx.text = NOT "" Then
    ne suffirait-il pas ???

    Cordialement
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  5. #5
    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
    Essayes ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If isnull(rs.Fields(0).Value) then
      dcentreprise.TxtModifEntTitreContact.Text = ""
    else
      dcentreprise.TxtModifEntTitreContact.Text = rs.Fields(0).Value
    end if
    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

  6. #6
    Invit-é
    Invité(e)
    Par défaut
    Non ça ne marche pas, c'est maintenant au niveau du SI que ça plante.

  7. #7
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par nono6788
    Non ça ne marche pas, c'est maintenant au niveau du SI que ça plante.
    Du SI ?! Oo


    ... Sinon essai le bout de code de Delbeke, en général il mise sur le bon cheval

    huhuHuhUhuhuHuhUhu
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  8. #8
    Invit-é
    Invité(e)
    Par défaut
    Merci Delbeke ! Ca marche.

  9. #9
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Je le savais ^^

    Delbeke, petite question pour toi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If isnull(rs.Fields(0).Value) then
      dcentreprise.TxtModifEntTitreContact.Text = ""
    else
    Ca veut donc dire qu'il y a une différence en une TextBox vide => "" et un champ NULL ???

    ... j'aurais pas cru...
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  10. #10
    Invit-é
    Invité(e)
    Par défaut
    Re,

    Je me permets de retirer un instant le 'Résolu' afin d'éviter la création d'un nouveau topic inutile.

    Je travaille toujours sur ce même code mais j'ai quelque peu modifier la requête et maintenant, cela plante au niveau de la ligne "rs.Open ...". Il me dit 'type de données incompatible', ai-je oublié de vérifie quelque chose ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        ' Infos du Contact
        rs.Close
        reqinfocontact = "SELECT DISTINCT contact.titrecontact, contact.nomcontact, contact.prenomcontact, contact.postecontact, contact.telcontact, contact.faxcontact FROM branche INNER JOIN (contact INNER JOIN representer_par ON contact.numcontact = representer_par.numcontact) ON branche.numbranche = representer_par.numbranche WHERE (((branche.nombranche) = " & Chr(34) & dcentreprise.CmbModifEntNomBranche.Text & Chr(34) & ") AND ((contact.numcontact) = " & Chr(34) & dcentreprise.CmbModifEntNumContact.Text & Chr(34) & "))"
        Set rs = New ADODB.Recordset
        rs.Open reqinfocontact, cn, adOpenKeyset, adLockOptimistic, -1
     
        If IsNull(rs.Fields(0).Value) Then
            TxtModifEntTitreContact.Text = ""
        Else
            TxtModifEntTitreContact.Text = rs.Fields(0).Value
        End If
        ...
    Merci.

  11. #11
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Bonjour,

    Ca c'est de la requête à rallonge ^^
    Justement ne te serais-tu pas un peu emmelé dans les ', les ", les char(34), etc...

    Si j'étais toi, peu ête l'as-tu déjà fait, je mettrais un espion sur ma requête, ou encore un point d'arrêt à la ligne du dessous pour voir ce que me retourne cette lonnnnngue ligne...


    Cordialement
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  12. #12
    Invit-é
    Invité(e)
    Par défaut
    En fait, comme d'habitube, c'est les guillemets autour des nombres qui font tout planter...

    Merci pour votre aide

  13. #13
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Oui c'est toujours un vrai casse tête dès que la requête dépasse les deux paramètres ^^

    Bonne continuation...
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  14. #14
    Invit-é
    Invité(e)
    Par défaut
    Merci

  15. #15
    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
    Citation Envoyé par La Praline
    Je le savais ^^

    Delbeke, petite question pour toi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If isnull(rs.Fields(0).Value) then
      dcentreprise.TxtModifEntTitreContact.Text = ""
    else
    Ca veut donc dire qu'il y a une différence en une TextBox vide => "" et un champ NULL ???

    ... j'aurais pas cru...
    He bien oui, dans les fields d'une base Access, un champs jamais saisi est Null, ce qui est différent d'une chaîne vide
    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

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/06/2015, 10h34
  2. [SPL] Rewind() qui renvoie NULL
    Par fadeninev dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 06/06/2006, 15h44
  3. [JDBC]Un new qui renvoie null...
    Par Ditch dans le forum JDBC
    Réponses: 4
    Dernier message: 03/01/2005, 13h14
  4. Problème requête qui renvoie plusieurs
    Par dai.kaioh dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/04/2004, 10h07

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