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 :

[VB]ADODB , teste de champs


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par défaut [VB]ADODB , teste de champs
    Salut,
    apres une connection, et une requete, je teste un champs(numero de portable). Malheuresement ce champs n'est pas toujours valide. S'il n'est pas valide mon programme vb s'envoit en l'air.
    Comment puis-je faire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      sOU = rs.Fields.Item(0).Value
      Set oOU = GetObject(sOU)
      sCite = oOU.Get("houseIdentifier")
      sPhoneNumber = oOU.Get("telephoneNumber")
      mobile = oOU.Get("mobile")
       rs.MoveNext
    Ici s'il n'y a pas de mobile, mon programme plante. Comment puis-je tester si ce champs existe dans la base.

    merci

  2. #2
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Peut-être ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if not IsNull(rs.Fields.Item(0).Value) then
    ......

  3. #3
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    bonjour,
    personnellement, dans ce genre de cas, je procede autrement (cas copie table à table différentes),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for each objField in rs.fields
       if objField.name = sMonChampRecherche then
          bTrouve = true
          exit for
       end if
    next
    if bTrouve then
        etc etc
    end if

  4. #4
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    AdHoc, tu testes l'existence d'un champ

    dans le cas de emardjean, c'est un champ vide qui lui cause soucis et la réponse de pc75 me semble tout à fait convenir

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par défaut
    En faite, je plante pas sur le getobjet, mais sur la ligne oOU.Get("mobile"))
    Suite à vos remarque j'ai fait cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       sOU = rs.Fields.Item(0).Value
       Set oOU = GetObject(sOU)
       sCite = oOU.Get("houseIdentifier")
       sPhoneNumber = oOU.Get("telephoneNumber")
       If Not IsNull(oOU.Get("mobile")) Then
               mobile = oOU.Get("mobile")
       Else
                mobile = ""
       End If
    Mais je plante toujours sur oOU.Get("mobile").
    Il faut savoir que je recupere bien les deux autres champs.
    Je n'arrive pas à récuperer les objets optionnels du ldap.

  6. #6
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Et avec "IsNothing" au lieu de "IsNull" ?

  7. #7
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    Citation Envoyé par emardjean
    Comment puis-je tester si ce champs existe dans la base
    Citation Envoyé par Thierry
    tu testes l'existence d'un champ


    Serai je totalement hors sujet ?


    Dans ton cas, je ne comprend pas pourquoi tu ne travaille pas directement avec les objets Field (de la collection Fields).

    Si la question est de tester la validité de la valeur du champ, remplace le etc etc par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if not(isnull(objField.value) ) then
    ou plus simple, si ton champ est censé etre une chaine, concatene le avec la chaine vide

  8. #8
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par AdHoc
    Serai je totalement hors sujet ?
    oui et non, car je crois surtout que la question est très mal posée

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par défaut
    Bon, alors je reprends.
    Mon code permet d'interroger un ldap.
    Une fois que j'ai récupérè la personne. Je recherche les infos dont j'ai besoins.
    Ces infos sont contenues dans un objet utilisateur qui est l'item rs.Fields.Item(0).Value
    Cette objet existe toujours. Mais si j'ai bien comprit les données de l'objet ne sont pas toujours les même.
    Je repete si j'ai bien compris. Le oOU.get est toujours valide sur le telephonenumber et sur l'adresse, mais
    le get mobile peut ne pas fonctionner, car si la personne n'a pas de portable cette attribut n'existe pas dans le ldap
    Ouf, pas facile d'expliquer, quand on a pas toutes les connaissances requisent.
    Merci pour votre patience.

  10. #10
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    Okay, j'étais donc bien complétement hors sujet (ou plutot à la surface), la prochaine je lirai le post au lieu de l'interpreter
    donc on reprend,
    ecrit une fonction à laquelle tu passe ton objet et le nom du champ à tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sub bTest(obj as object, sChamp as string)
    on error goto erreur
    obj.get(sChamp)
    btest = true
    Fin:
    exit sub
     
    Erreur:
    btest = false
    resume fin
    end sub
    J'utilise souvent ce type de fonction avec les objets

  11. #11
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par AdHoc
    la prochaine je lirai le post ou de l'interpreter
    Le problème, c'est que ce n'est quand même pas à ceux qui essaient gentilment d'aider d'interpréter les questions

    le posteur doit faire un minimum d'effort pour formuler sa question le plus clairement et le plus précisement possible
    C'est dans Les règles du forum


    Une question comme celle-ci, je ne me donne même pas la peine de chercher une reponse ou une solution

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par défaut
    Encore désolé.
    Mais il n'est pas très facile quand on est sous pression, que l'on récupere un code mal ecrit et bourré d'erreur dans un language que l'on ne connait pas d'expliqué son problème.
    Bref j'avoue ma question était mal posé et je m'en excuse encore.
    et Je vous remercie de votre patience.
    Sincéres salutations

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

Discussions similaires

  1. [debutant] test sur champ de formulaire vide
    Par eyango dans le forum Access
    Réponses: 1
    Dernier message: 25/08/2006, 18h17
  2. un if en sql (Test sur champ NULL)
    Par vince_grenoblois dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/07/2006, 13h53
  3. Réponses: 12
    Dernier message: 18/07/2006, 17h36
  4. [Access2000] test si champ vide qui marche pas ...
    Par michaelbob dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 10h46
  5. Test si champs obligatoires remplis
    Par michaelbob dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/09/2005, 14h20

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