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 :

Erreur d'exécution 94, Utilisation incorrecte de Null


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 59
    Points
    59
    Par défaut Erreur d'exécution 94, Utilisation incorrecte de Null
    Bonjour
    Je suis un novice au VBA et mon problème est le suivant :
    J'ai créé un formulaire de recherche multicritère basé sur un filtre
    La recherche s'effectue entre deux dates dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    If Not IsNull(Me.Date1) And Me.Date1 <> "" And Not IsNull(Me.Date2) And Me.Date2 <> "" Then
     If f <> "" Then
     f = f & " AND Clng([Date résultat]) BETWEEN " & CLng(Me.Date1) & " AND " & CLng(Me.Date2)
     Else
     f = "Clng([Date résultat]) BETWEEN " & CLng(Me.Date1) & " AND " & CLng(Me.Date2)
     End If
     
     End If
     
     Me.Filter = f
     Me.FilterOn = True
    Le problème est que lorsque le champ date est vide et que je j'exécute le filtre, je reçois le message suivant : "Erreur d'exécution 94, Utilisation incorrecte de Null"

    Est-ce que quelqu'un aura l'amabilité de me modifier cette ligne du code pour qu'il accepte les valeurs "Null" de ma table?

    Merci infiniment

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Il ne faudrait pas un espace au début de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = " Clng([Date résultat]) BETWEEN " & CLng(Me.Date1) & " AND " & CLng(Me.Date2)
    @+.

  3. #3
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Le plus simple est d'utiliser la fonction NZ(ChampConcerne, Valeur Affectée si le champ est null

    Exemple :

    Tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If Not IsNull(Me.Date1) And Me.Date1 <> "" And Not IsNull(Me.Date2) And Me.Date2 <> "" Then
    ...
    Tu pourrais écrire plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Nz(Me.Date1,0) > 0 And Nz(Me.Date2,0)> 0 Then ...
    Bonne continuation

  4. #4
    Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 59
    Points
    59
    Par défaut Erreur d'exécution 94, Utilisation incorrecte de Null
    Bonjour

    - En utilisant la première solution de zoom61, je reçois toujours le même message : Erreur d'exécution 94, Utilisation incorrecte de Null

    - En utilisant la deuxième solution de Jeannot45, le message d'erreur disparaît mais le filtre n'est pas appliqué

    NB que les résultats du filtre appliqué doivent être inclus entre date1 et date2

    Cordialement

  5. #5
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour redojackson,
    Si j'ai bien compris le champ date qui est null est [Date résultat]. Si c'est le cas c'est la qu'il faut que tu mettes le Nz:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ....AND Clng(Nz([Daterésultat],0))....
    Bonne journée

  6. #6
    Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 59
    Points
    59
    Par défaut
    Slt Robert1957
    Je vous remercie infiniment, vous aviez complètement raison
    J'ai mis le code suivant et hop mon problème est résolu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If Not IsNull(Me.Date1) And Me.Date1 <> "" And Not IsNull(Me.Date2) And Me.Date2 <> "" Then
     If f <> "" Then
     f = f & " AND Clng(Nz([Daterésultat],0)) BETWEEN " & CLng(Me.Date1) & " AND " & CLng(Me.Date2)
     Else
     f = "Clng(Nz([Date résultat],0)) BETWEEN " & CLng(Me.Date1) & " AND " & CLng(Me.Date2)
     End If
      
     End If
     
     Me.Filter = f
     Me.FilterOn = True
    Mille merci

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

Discussions similaires

  1. [AC-2007] Erreur d'exécution '94' Utilisation incorrecte de Null
    Par volsan dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/12/2014, 02h20
  2. [AC-2002] erreur d'exécution '94' utilisation incorrecte de null
    Par Mpgam2 dans le forum VBA Access
    Réponses: 0
    Dernier message: 08/07/2013, 20h02
  3. [AC-2003] [VBA] Erreur d'exécution 94 - Utilisation incorrecte de Null aléatoire
    Par chahine92 dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/04/2011, 22h00
  4. Réponses: 10
    Dernier message: 07/12/2010, 14h30
  5. Erreur d'exécution '94' Utilisation incorrecte du Null.
    Par zeine77 dans le forum VBA Access
    Réponses: 6
    Dernier message: 11/08/2008, 16h53

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