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

IHM Discussion :

formulaire tri multi critère


Sujet :

IHM

  1. #1
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut formulaire tri multi critère
    bonjour voilà , j'essaie par rapport au tutoriel de cafeine d'efecuter un tri multi critère sur du texte et des dates, le texte çà va par contre les date pas moyen, 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
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Private Sub RefreshQuery()
     Dim SQL As String
     Dim SQL1 As Date
     
     Dim SQLWhere As String
     
     SQL = "SELECT numero, numero_QS, societe, chef_prenom, chef_nom, mission, Type_mission, code_mission, date_traitement, date_debut, date_fin, duree, budget, modalite FROM QS Where QS!numero <> 0 "
     
     If Not Me.checknomchef Then
        SQL = SQL & "And QS!chef_nom like '*" & Me.txtRechnom & "*' "
     End If
     If Not Me.Cocher1 Then
        SQL = SQL & "And QS!societe = '" & Me.cmbRechsociete & "' "
     End If
     If Not Me.checkprenomchef Then
        SQL = SQL & "And QS!chef_prenom like '*" & Me.txtRechprenom & "*' "
     End If
     
     If Not Me.Cocher7 Then
        SQL = SQL & "And QS!interlocuteur = '" & Me.cmbRechinterlocuteur & "' "
     End If
     
     If Not Me.Cocher11 Then
        SQL = SQL & "And QS!Type_mission = '" & Me.cmbRechtype_mission & "' "
     End If
     
     If Not Me.checkdebut Then
      SQL1 = SQL1 & "And QS!date_debut= '" & Me.cmbRechdebut& "' "
     End If
     
     If Not Me.checkfin Then
        SQL1 = SQL1 & "And QS!date_fin = '" & Me.cmbRechfin & "' "
     End If
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     SQL = SQL & ";"
     
     Me.lblStats.Caption = DCount("*", "QS", SQLWhere) & " / " & DCount("*", "QS")
     Me.lstResults.RowSource = SQL
     Me.lstResults1.RowSource = SQL1
     Me.lstResults.Requery
     Me.lstResults1.Requery
    End Sub
    les deux dates sont inscrites dans des champs date_debut, et date_fin, quelqu'un aurait il le type sql1 à declarer (dim sql1 as date) et sa syntaxe dans l'instrcution suivante:
    SQL1 = SQL1 & "And QS!date_debut= '" & Me.cmbRechdebut& "' "

    merci d'avance

  2. #2
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    SQL1 est de type chaine de caractères (string)

    Et tu auras :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL1 = SQL1 & "And QS!date_debut= #" & Format(Me.cmbRechdebut, "mm/dd/yyyy") & "# "
    Par contre, dans ton SQL1, il manque le SELECT ... FROM

  3. #3
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut
    çà ne fonctionne pas, j'ai bien tanté la manip, mais ya toujours incompatibilité de type, et je ne peux donc pas effectuer ma recherche et sur les date et sur le texte:
    quelqu'un pourrait il m'aider
    merci


    Option Compare Database

    Private Sub checknomchef_Click()
    If Me.checknomchef Then
    Me.txtRechnom.Visible = False

    Else
    Me.txtRechnom.Visible = True

    End If
    RefreshQuery
    End Sub

    Private Sub checkprenomchef_Click()
    If Me.checkprenomchef Then
    Me.txtRechprenom.Visible = False
    Else
    Me.txtRechprenom.Visible = True
    End If
    RefreshQuery
    End Sub







    Private Sub Cocher1_Click()
    If Me.Cocher1 Then
    Me.cmbRechsociete.Visible = False
    Else
    Me.cmbRechsociete.Visible = True
    End If

    RefreshQuery
    End Sub
    Private Sub Cocher7_Click()
    If Me.Cocher7 Then
    Me.cmbRechinterlocuteur.Visible = False
    Else
    Me.cmbRechinterlocuteur.Visible = True
    End If
    RefreshQuery
    End Sub
    Private Sub Cocher11_Click()
    If Me.Cocher11 Then
    Me.cmbRechtype_mission.Visible = False
    Else
    Me.cmbRechtype_mission.Visible = True
    End If
    RefreshQuery
    End Sub

    Private Sub checkdebut_Click()
    If Me.checkdebut Then
    Me.cmbRechdebut.Visible = False

    Else
    Me.cmbRechdebut.Visible = True

    End If
    RefreshQuery
    End Sub

    Private Sub checkfin_Click()
    If Me.checkfin Then
    Me.cmbRechfin.Visible = False

    Else
    Me.cmbRechfin.Visible = True

    End If
    RefreshQuery
    End Sub


    Private Sub Form_Load()
    Dim ctl As Control

    For Each ctl In Me.Controls
    Select Case Left(ctl.Name, 3)
    Case "che"
    ctl.Value = -1
    Case "lbl"
    ctl.Caption = "- * - * -"
    Case "txt"
    ctl.Visible = False
    ctl.Value = ""
    Case "cmb"
    ctl.Visible = False
    End Select
    Next ctl

    Me.lstResults.RowSource = "SELECT numero, numero_QS, societe, chef_prenom, chef_nom, mission, Type_mission, code_mission, date_traitement, date_debut, date_fin, duree, budget, modalite FROM QS ;"
    Me.lstResults.Requery

    End Sub



    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQL1 As String

    Dim SQLWhere As String

    SQL = "SELECT numero, numero_QS, societe, chef_prenom, chef_nom, mission, Type_mission, code_mission, date_traitement, date_debut, date_fin, duree, budget, modalite FROM QS Where QS!numero <> 0 "

    If Not Me.checknomchef Then
    SQL = SQL & "And QS!chef_nom like '*" & Me.txtRechnom & "*' "
    End If
    If Not Me.Cocher1 Then
    SQL = SQL & "And QS!societe = '" & Me.cmbRechsociete & "' "
    End If
    If Not Me.checkprenomchef Then
    SQL = SQL & "And QS!chef_prenom like '*" & Me.txtRechprenom & "*' "
    End If

    If Not Me.Cocher7 Then
    SQL = SQL & "And QS!interlocuteur = '" & Me.cmbRechinterlocuteur & "' "
    End If

    If Not Me.Cocher11 Then
    SQL = SQL & "And QS!Type_mission = '" & Me.cmbRechtype_mission & "' "
    End If

    If Not Me.checkdebut Then
    SQL1 = SQL1 & "And QS!date_debut= #" & Format(Me.cmbRechdebut, "mm/dd/yyyy") & "# "
    End If

    If Not Me.checkfin Then
    SQL1 = SQL1 & "And QS!date_fin = '" & Me.cmbRechfin & "' "
    End If
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
    SQL = SQL & ";"

    Me.lblStats.Caption = DCount("*", "QS", SQLWhere) & " / " & DCount("*", "QS")
    Me.lstResults.RowSource = SQL
    Me.lstResults1.RowSource = SQL1
    Me.lstResults.Requery
    Me.lstResults1.Requery
    End Sub

    Private Sub lstResults_DblClick(Cancel As Integer)

    DoCmd.OpenForm "frmAutoquestionnaire", acNormal, , "[numero] = " & Me.lstResults


    End Sub

    Private Sub lstResults1_DblClick(Cancel As Integer)

    DoCmd.OpenForm "frmAutoquestionnaire", acNormal, , "[numero] = " & Me.lstResults


    End Sub





    Private Sub txtRechdebut_BeforeUpdate(Cancel As Integer)

    RefreshQuery

    End Sub





    Private Sub txtRechnom_BeforeUpdate(Cancel As Integer)

    RefreshQuery

    End Sub

    Private Sub txtRechprenom_BeforeUpdate(Cancel As Integer)

    RefreshQuery

    End Sub

    Private Sub cmbRechsociete_BeforeUpdate(Cancel As Integer)

    RefreshQuery

    End Sub


    Private Sub cmbRechinterlocuteur_BeforeUpdate(Cancel As Integer)

    RefreshQuery

    End Sub

    Private Sub cmbRechtype_mission_BeforeUpdate(Cancel As Integer)

    RefreshQuery
    End Sub

    Private Sub cmbRechdebut_BeforeUpdate(Cancel As Integer)
    RefreshQuery
    End Sub

    Private Sub cmbRechfin_BeforeUpdate(Cancel As Integer)
    RefreshQuery
    End Sub

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    Il te renvoi un message d'erreur? Si oui, lequel et sur quelle ligne?

    Par contre, ton SQL1 n'est pas défini, donc, il ne peut pas te trouver les enregistrements. Il te faut quelques chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL1 = "SELECT... FROM..."
    Tes recherches sur les dates sont des critères supplémentaires qui s'ajoutent aux autres critères (nom du chef, prenom du chef...)??

  5. #5
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut
    ' SQL1 = SQL1 & "And QS!date_debut= #" & Format(Me.cmbRechdebut, "mm/dd/yyyy") & "# "
    c'est sur cette ligne que çà bug

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Pas etonnant. Il faut que tu definisses ton SQL1, comme tu l'as fait pour ton SQL.

    Mais ce n'est peut etre pas utile, si les dates sont un critère supplementaire dans ta recherche

    Que veux tu faire exactement avec ces dates? Tu as deux listes de resultats si j'ai bien compris???

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Essai cette procedure pour voir:

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Private Sub RefreshQuery()
     Dim SQL As String
     
     Dim SQLWhere As String
     
     SQL = "SELECT numero, numero_QS, societe, chef_prenom, chef_nom, mission, Type_mission, code_mission, date_traitement, date_debut, date_fin, duree, budget, modalite FROM QS Where QS!numero <> 0 "
     
     If Not Me.checknomchef Then
        SQL = SQL & "And QS!chef_nom like '*" & Me.txtRechnom & "*' "
     End If
     If Not Me.Cocher1 Then
        SQL = SQL & "And QS!societe = '" & Me.cmbRechsociete & "' "
     End If
     If Not Me.checkprenomchef Then
        SQL = SQL & "And QS!chef_prenom like '*" & Me.txtRechprenom & "*' "
     End If
     
     If Not Me.Cocher7 Then
        SQL = SQL & "And QS!interlocuteur = '" & Me.cmbRechinterlocuteur & "' "
     End If
     
     If Not Me.Cocher11 Then
        SQL = SQL & "And QS!Type_mission = '" & Me.cmbRechtype_mission & "' "
     End If
     
     If Not Me.checkdebut Then
      SQL = SQL & "And QS!date_debut >= #" & Format(Me.cmbRechdebut, "mm/dd/yyyy") & "# "
     End If
     
     If Not Me.checkfin Then
        SQL = SQL & "And QS!date_fin =< #" & Format(Me.cmbRechfin, "mm/dd/yyyy") & "# "
     End If
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     SQL = SQL & ";"
     
     Me.lblStats.Caption = DCount("*", "QS", SQLWhere) & " / " & DCount("*", "QS")
     Me.lstResults.RowSource = SQL
     Me.lstResults.Requery
     
    End Sub

  8. #8
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut
    C'est bon je viens de trouver mon erreur.
    tu avais raison j'ai oublié le select, je suis vraiment une buse

    merci encore à tout ceux qui m'ont répondu

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Avec plaisir

    p.s: Noublies pas le TAG

  10. #10
    Débutant Avatar de laurent.w
    Inscrit en
    Décembre 2006
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 201
    Points : 70
    Points
    70
    Par défaut
    je trouve pas le tag resolu

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/01/2008, 14h59
  2. Sous formulaire et multi critère de sélection
    Par Spanish_ dans le forum IHM
    Réponses: 26
    Dernier message: 01/11/2007, 03h03
  3. Réponses: 7
    Dernier message: 04/04/2007, 16h34
  4. Réponses: 6
    Dernier message: 18/03/2007, 16h22
  5. formulaire recheche multi critères
    Par tomas dans le forum IHM
    Réponses: 3
    Dernier message: 16/03/2007, 15h29

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