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 :

Recordset: Pb sur une condition (= Null)


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Par défaut Recordset: Pb sur une condition (= Null)
    Bonjour à tous,

    je viens vous faire part d un probleme, en apparence tout bête, qui se situe dans un If au sein dans lequel une condition est: si le champ d un Recordset est nul alors on execute le if (voir code ci apres).

    Le probleme est que cette condition n arrive jamais a etre validée alors qu elle le devrait. Pour ce recordset, le champ dont il est question est de type "text". J ai deja essayé de faire un Cstr du champ ou d utiliser la fonction IsNull(), mais ces fonctions ne fonctionnent pas avec le recordset.

    Ce code marchait très bien il n y a qu au moment ou j ai rajouté cette autre condition que ca a deraillé.

    Avez vous deja rencontré ce genre de problèmes? Avez vous une idée d'où peut provenir mon erreur?

    Merci par avance pour le temps consacré,

    Sébastien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim debarras2 As Integer
        Dim MaBd2 As database
        Dim Rst2 As Recordset
        Set MaBd2 = CurrentDb
        Set Rst2 = MaBd2.OpenRecordset("Fehlerart_Montage_database", adOpenDynamic)
     
            Rst2.Move First
     
        For k = 1 To taille_fehlerart_database
     
        If Rst2.Fields("Montage").Value = MontWie And Rst2.Fields("Teil1").Value = Null Then
    ' plus le reste du code...
    Lorsque je laisse un F9 sur ce if, j ai bien le recordset qui est montré comme Null mais pourtant ca ne veux pas valider...

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 129
    Par défaut
    Salut

    si le champs en question est de type text, c'est normal que null ne marche pas.
    il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim debarras2 As Integer
        Dim MaBd2 As database
        Dim Rst2 As Recordset
        Set MaBd2 = CurrentDb
        Set Rst2 = MaBd2.OpenRecordset("Fehlerart_Montage_database", adOpenDynamic)
     
            Rst2.Move First
     
        For k = 1 To taille_fehlerart_database
     
        If Rst2.Fields("Montage").Value = MontWie And Rst2.Fields("Teil1").Value = "" Then
    ' plus le reste du code...
    normalement ça devrait marcher

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Par défaut
    Salut Janny,

    et merci pour ta reponse.

    j ai bien essayé ( tout comme ("") ) mais la aussi sans succés.

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 129
    Par défaut
    Le problème peut alors venir de ta table
    Teil1 doit etre en null interdit = non

    sinon je voit pas trop ce que ça peut etre....

  5. #5
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Le test de null s'effectue avec isnull et non = null

    And IsNull(Rst2.Fields("Teil1").Value)

    Tu peux aussi utiliser Nz mais dans ce cas tu ne sais plus différencier la valeur nulle de celle de subistitution

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Par défaut
    waou.. merci a tous pour vos reponses!

    Tu avais raison tofalu pour le Nz et And IsNull(Rst2.Fields("Teil1").Value). Ca fonctionne impeccable.

    Merci encore!

    Sébastien

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

Discussions similaires

  1. Erreur ADODB.Recordset error '800a0cc1' sur une condition
    Par jeandormesson dans le forum ASP
    Réponses: 1
    Dernier message: 02/04/2008, 11h05
  2. pb sur une condition
    Par micka180 dans le forum VBScript
    Réponses: 6
    Dernier message: 26/09/2007, 12h29
  3. [Requête] Explication sur une condition dans une Requête
    Par jimmymatrix dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/05/2007, 14h34
  4. Question sur une condition d'un exemple de la FAQ
    Par Bleys dans le forum Delphi
    Réponses: 3
    Dernier message: 08/08/2006, 12h43
  5. problème sur une condition if
    Par boss_gama dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/07/2006, 12h04

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