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 :

Critère de date à date SQL et VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Critère de date à date SQL et VBA
    Bonjour,

    Je viens vers le groupe pour que l’on me donne la main, (et oui, je n’y arrive toujours pas).
    A mon niveau, le mélange de SQL et VBA est très complexe.
    Voilà, j’ai repris le formulaire de recherche sur ce site en essayant d’y ajouter une recherche de date à date.
    Ma requête possède une colonne date, est-il possible de rechercher de date à date à partir d’une seule colonne « date »?
    Voici le code et le fichier ci-joint pour une meilleure compréhension :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    Private Sub RefreshQuery()
    Dim date1 As Date
    Dim date2 As Date
    Dim SQL As String
    Dim SQLWhere As String
    ‘-------------------------------------------------
    SQL = "SELECT [qry_brt].[Num_auto], [qry_brt].[Ville], [qry_brt].[Date], [qry_brt].[ref], [qry_brt].[Entreprise] FROM qry_brt Where qry_brt!Num_auto <> 0 "
    'Choix de l'entreprise ---------------------------
    If Not Me.chkEnt Then
        SQL = SQL & "And qry_brt!Entreprise = '" & Me.cmbRechEnt & "' "
    End If
    'Choix de la ville--------------------------
    If Not Me.chkVille Then
        SQL = SQL & "And qry_brt!Ville = '" & Me.cmbRechVille & "' "
    End If
    'Choix de la date--------------------------
    If Not Me.chkDate Then
    SQL = SQL & "And qry_brt!Date like '*" & Me.date1 & " and " & Me.date2 & " or between " & Me.date1 & " and " & Me.date2 & "*' "
    End If
    ‘------------------------------------------------
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
    SQL = SQL & ";"
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
    Me.lblStats.Caption = DCount("*", "qry_brt", SQLWhere) & " / " & DCount("*", "qry_brt")
    End Sub
    A mon sens cette ligne est très importante dans la recherche, mais, est-elle correcte ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     SQL = "SELECT [qry_brt].[Num_auto], [qry_brt].[Ville], [qry_brt].[Date], [qry_brt].[ref], [qry_brt].[Entreprise] FROM qry_brt Where qry_brt!Num_auto <> 0 "
    Comment prendre en compte la recherche avec Me.date1 et Me.date2 ?
    Dois-je modifier les critères de recherche dans la requête, en SQL ?
    Tant de question qui attendent une réponse d’une âme sensible.
    Merci.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 154
    Par défaut
    Bonsoir..

    Je n'ai pas très bien compris...
    Tu veux faire une recherche avec une plage de date ?
    (compris entre Date1 et Date2 du formulaire ?)

    Auquel cas, je pense que ta chaine SQL n'est pas correcte
    (celle ou il y a if not Me!ChkDate...).

    Je ne suis pas sur, mais l'opérateur Like n'est pas approprié pour les dates, il me semble..
    En plus, tu mets l'astérisque au mauvais endroit...
    Il est peu probable que dans ton champ date, il y ait autre chose que la date, en tout cas au début du champ... Je le mettrais plus volontiers à la fin.

    Ta chaine SQL est importante, bien sur, c'est celle qui donne la liste des champs affiche (row.source)
    Je n'aurai pas répété le nom de la table à chaque champ.... c'est inutile..

    Voila quelques pistes....

    Bon courage
    DIdier71 (eh oui, aussi)

  3. #3
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Critère de date à date SQL et VBA
    Bonsoir,

    As-tu regardé le fichier joint ?
    (If Not Me.chkEnt Then, If Not Me.chkVille Then, If Not Me.chkDate Then)
    Servent en fonction du critère de recherche.
    En fait je ne connais pas grand chose à tous ça, j'ai besoin d'un coup de main.
    D'ou mes questions.

    Voilà.
    Merci bien.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 154
    Par défaut
    Bonsoir

    Oui, j'ai regardé le fichier joint, après avoir envoyé le message....

    Je me suis aperçu que lorsque tu saisis la date à l'aide du contrôle calendrier, tu ne récupéres pas la date dans le contrôle Date1 et Date2

    lors du "If Not Me.chkDate Then", la valeur de Me.date1 et Me.date2 est "NULL"
    (tu mets dans ton code un debug.print Me.date1 , Me.date2 et tu vois que la valeur est NULL)

    donc le filtre n'est pas possible....

    essaye donc en supprimant dans un premier temps le controle calendrier, en faisant une saisie à la main pour voir ce qui se passe..

    Bon courage..

    Didier71

  5. #5
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Critère de date à date SQL et VBA
    Bonsoir,

    J'ai supprimé le nom de la table à chaque champ, j'ai supprimé le calendrier.
    J'ai modifié la ligne SQL et j'ai un message qui me dit (Erreur de syntaxe opérateur manquant).
    Que dois-je modifier ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 154
    Par défaut
    Bonsoir

    J'ai bossé un peu sur ta base, mais je n'y arrive pas non plus..
    Il n'y a plus de plantage, mais le filtre sur la date ne marche pas..

    J'ai "recopié " sur l'exemple, en utilisant la table directement....
    mais rien à faire.

    Lorsqu'on décoche la date, je mets la date du jour, pour pas que les champ date1 et date2 soient vides, sinon il y a plantage, car tu appelles de suite la procédure requery..

    Je ne suis pas "spécialiste", je vais avoir du mal à aller plus loin.. J'espère que quelqu'un trouvera la solution
    BOn courage
    Didier71
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [AC-2010] Format Date dans une requete SQL en VBA
    Par tveniere dans le forum Access
    Réponses: 2
    Dernier message: 02/04/2021, 11h54
  2. Pb de syntaxe SQL en VBA sur la sélection d'une date
    Par rch05 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 18/09/2010, 17h58
  3. [AC-2007] Requête SQL en VBA avec Date
    Par soprano6217 dans le forum VBA Access
    Réponses: 5
    Dernier message: 02/04/2009, 14h47
  4. [excel] probleme de résultat de date avec sql en vba
    Par law56100 dans le forum VBA Access
    Réponses: 8
    Dernier message: 23/02/2009, 17h54
  5. [SQL ds VBA] Probleme de date ds un UPDATE
    Par robin des bulles dans le forum Access
    Réponses: 8
    Dernier message: 20/06/2006, 10h37

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