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

Access Discussion :

[code] recherche multi critére


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut [code]recherche multi critére
    Salut à tous,
    J'ai un probléme aussi avec le code du formulaire recherche multi critéres, je tente de comprendre par moi même à l'aide des outils que vous avez donnés mais je ne trouve pas mon erreur.
    En débogage voilas ce qu'il me souligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SQL = "SELECT ID_site, toponyme FROM point d'observation Where point d'observation!ID_site <> 0 "
     If Me.Cocher6 Then
        SQL = SQL & "And point d'observation!type de site ='*" & Me.type_site & "*' "
     End If
     If Me.Cocher8 Then
        SQL = SQL & "And géosystème!type_Snat = '*" & Me.type_Snat & "*' "
     End If
    If Me.Cocher12 Then
         SQL = SQL & "And interpretation!interpretation like '" & Me.Texte10 & "' "
     End If
    Type_Snat et Type_site sont des Combobox et Texte10 est un Textbox


    PS: Suis débutante en SQL et trés débutante en VBA
    Merci d'avance
    Batide

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    J'ai séparé ta question de l'autre sujet,

    sinon ...
    n'est pas valide

    c'est soit
    soit

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut Merci
    Merci pour la réponse rapide,
    Il semble qu-il y est une autre erreur, quand je suis dans le formulaire et que je coche mes Checkbox, j'ai un message d'erreur "erreur d'exécution'94' utilisation incorrecte de Null" et le débogage me renvoi sur les mêmes lignes...
    J'avoue ne plus comprendre...
    Merci

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Donne nous un peu plus de ton code ...

    Ensuite pense à déboguer ton SQL

    http://cafeine.developpez.com/access...el/debugprint/

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Je pense avoir trouver le début de mon probléme dans ma phrase SQL je n'avais pas mis WHERE en majuscule, ceci étant fait, il bug toujours,

    Je suis en train de faire les recherche a l'aide du turorial sur debugprint...

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    Option Compare Database
     
    Private Sub Cocher6_Click()
       Me.type_site.Visible = Not Me.type_site.Visible
       RefreshQuery
    End Sub
     
    Private Sub Cocher8_Click()
        Me.type_Snat.Visible = Not Me.type_Snat.Visible
       RefreshQuery
    End Sub
    Private Sub Cocher12_Click()
        Me.Texte10.Visible = Not Me.Texte10.Visible
       RefreshQuery
    End Sub
     
    Private Sub Détail_Click()
     
    End Sub
     
    Private Sub type_site_BeforeUpdate(Cancel As Integer)
       RefreshQuery
    End Sub
    Private Sub type_Snat_BeforeUpdate(Cancel As Integer)
       RefreshQuery
    End Sub
     
    Private Sub Texte10_BeforeUpdate(Cancel As Integer)
       RefreshQuery
    End Sub
     
    Private Sub RefreshQuery()
     Dim SQL As String
     Dim SQLWhere As String
     
     SQL = "SELECT ID_site,toponyme FROM point d'observation WHERE point d'observation!ID_site <> 0 "
     If Me.Cocher6 Then
        SQL = SQL & "And point d'observation!type de site ='" & Me.type_site & "' "
     End If
     If Me.Cocher8 Then
        SQL = SQL & "And géosystème!type_Snat = '" & Me.type_Snat & "' "
     End If
     If Me.Cocher12 Then 
     SQL = SQL & "And interpretation!interpretation like '*" & Me.Texte10 & "*' "
     End If
     
     
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     SQL = SQL & ";"
     
     Debug.Print SQL
     
     
     Me.Liste4.RowSource = SQL
     Me.Liste4.Requery
     
    End Sub
     
    Private Sub Form_Load()
    Dim ctl As Control
     
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "Cocher"
                ctl.Value = -1
            Case "Texte"
                ctl.Visible = False
                ctl.Value = ""
            Case "type"
                ctl.Visible = False
        End Select
    Next ctl
     
    Me.Liste4.RowSource = "SELECT ID_site, toponyme FROM point d'observation;"
    Me.Liste4.Requery
     
    End Sub
    en recherche de Bug il me surligne le Cocher12 dans la demande de réponse... je pensais avoir compris ton tutorial sur le formulaire multi critére, a parament pas.
    De plus les listes déroulantes de mes combobox sont vide alors que la requête de regroupement fonctionne qaund je la teste a l'extérieur du formulaire
    :

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 158
    Points : 163
    Points
    163
    Par défaut
    salut, alors ce qui m'a sauté aux yeux en lisant ton code, c'est :
    hum dans access (voire dans tout logiciel de programmation, mais je m'avance peut être), il faut éviter à tout prix les noms avec espaces ou apostrophes. Mais on peut tout de meme les utiliser dans le code à l'aide des balises [...]

    je n'ai pas testé, mais personnellement je pense que c'est un début du probleme

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Merci,
    J'ai déja commencer a chnager se type d'erreur et j'ai mis de Balise [] autour de point d'observation mais il ne gére toujours pas l'ensembl de l'action.

  8. #8
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Oui LeScandinave a totalement raison, il faut encadrer les noms de table, voire de champs par des crochets [].

    De manière générale il vaut mieux éviter les caractères accentués / spéciaux et espaces dans les noms de tables et de champs.

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    a la vue du tutorial de cafeine sur le débogage j'ai un pb de valeur nul dans mes cmbox.
    je pense que les requêtes sur ces champs ne fonctionne pas...
    à suivre

  10. #10
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par batide
    a la vue du tutorial de cafeine sur le débogage j'ai un pb de valeur nul dans mes cmbox.
    je pense que les requêtes sur ces champs ne fonctionne pas...
    à suivre
    Null ou pas, si tu ne corriges pas l'histoire des crochets, ça ne marchera pas.

  11. #11
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 158
    Points : 163
    Points
    163
    Par défaut
    juste pour info, le message d'erreur il te dit quoi? et il a quel numero?
    Lire les messages d'erreurs peuvent être très instructifs parfois (je ne les lisais pas au début, mais on commence à reconnaître des erreurs assez vite quand on voit les memes messages 10 fois par jour )

    Je te l'indique aussi, il faut des crochets à

  12. #12
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    j'ai mis des [] à tous les champs qui risquaient d'étre mal compris: point d'observation, type de site, j'ai modifier les noms qui avait des accents geosysteme.... (en prenant soin de les modifier dans les tables respectives)

    l'erreur est toujours la même '94' une tilisation incorect du Null.
    A priori, cocher6= null
    j'ai donc un pb du côter du null, je supose, d'autant qu'il n'est pas senser l'étre, puisque c'est l'action qui permet la recherche par "type de site" dans la tables "point d'observation" par combobox type_site et que celui-ci malgrés la requête (Group by type de site) ne m'offre qu'une liste déroulante sans valeurs....BLANC
    Or ce champs est renseigné
    la requête fonctionne à l'extérieur du formulaire (je l'ai tester )
    j'avoue étres un peu perdue.... je me bas avec ce formulaire depuis 3 jours....



  13. #13
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 158
    Points : 163
    Points
    163
    Par défaut
    comme ça, dis moi, quelle la valeur par défaut de tes checkbox?
    je te conseille de mettre 0 (propriétés, puis données pour chaques controles).
    Je crois me souvenir avoir eu le même soucis que toi il y a pas mal de temps.

    bonne chance

    pour verifier si c'est ça, tu peux aussi remplacer tous les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.CocherX Then 
        SQL = SQL & "And blabla " 
    End If
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Me.CocherX Then 
        SQL = SQL & "And blabla " 
    End If
    Ton erreur disparaîtra je pense

  14. #14
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut

    bon c'est décidement pas gagner... j'ai tenter la derniére solution que tu me propose lescandinave, mais toujours pas de réponse il semble que le null le géne plus mais il me dit qu'il a pb dans la clause FROM, je cherche...
    Je remet le code dans son état actuel: qui sait...




    [/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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    Option Compare Database
     
    Private Sub Cocher6_Click()
       Me.type_site.Visible = Not Me.type_site.Visible
       RefreshQuery
    End Sub
     
    Private Sub Cocher8_Click()
        Me.type_Snat.Visible = Not Me.type_Snat.Visible
       RefreshQuery
    End Sub
    Private Sub Cocher12_Click()
        Me.txtinterp.Visible = Not Me.txtinterp.Visible
       RefreshQuery
    End Sub
     
     
    Private Sub Détail_Click()
     
    End Sub
     
    Private Sub type_site_BeforeUpdate(Cancel As Integer)
       RefreshQuery
    End Sub
    Private Sub type_Snat_BeforeUpdate(Cancel As Integer)
       RefreshQuery
    End Sub
     
    Private Sub txtinterp_BeforeUpdate(Cancel As Integer)
       RefreshQuery
    End Sub
     
    Private Sub RefreshQuery()
     Dim SQL As String
     Dim SQLWhere As String
     
     SQL = "SELECT ID_site,toponyme FROM [point d'observation] WHERE [point d'observation].ID_site <> 0;"
     If Not Me.Cocher6 Then
        SQL = SQL & "And [point d'observation]![type de site] = '" & Me.type_site & "' "
     End If
     If Not Me.Cocher8 Then
        SQL = SQL & "And [geosysteme]![type_Snat] = '" & Me.type_Snat & "' "
     End If
    If Not Me.Cocher12 Then
         SQL = SQL & "And [interpretation]![interpretation] like '*" & Me.txtinterp & "*' "
     End If
     
     
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     SQL = SQL & ";"
     
     Debug.Print SQL
     
     
     Me.Liste4.RowSource = SQL
     Me.Liste4.Requery
     
    End Sub
     
    Private Sub Form_Load()
    Dim ctl As Control
     
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "Cocher"
                ctl.Value = -1
            Case "Txt"
                ctl.Visible = False
                ctl.Value = ""
            Case "type"
                ctl.Visible = False
        End Select
    Next ctl
     
    Me.Liste4.RowSource = "SELECT ID_site, toponyme FROM [point d'observation] WHERE [point d'observation].ID_site <> 0;"
    Me.Liste4.Requery
     
    End Sub
    Merci pour votre aide
    "le chemin se fait en marchant" (Commandant Marcos)

  15. #15
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 158
    Points : 163
    Points
    163
    Par défaut
    hum, bon bon, il y a du changement, c'est plus la meme erreur , on avance!

    Encore un truc qui pourrait etre source d'erreur:
    ID_site, c'est bien un champ numerique?

  16. #16
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Et non, ID_site est texte...
    Une autre erreur?

  17. #17
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    alors <> "0" au lieu de <> 0

  18. #18
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    désolé ça n'as pas l'aire de lui plaire non plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT ID_site, toponyme FROM [point d'observation] Where [point d'observation]!ID_site <> "0" "
    Merci.
    je ne désespére pas je continus a faire le chemin...

  19. #19
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    pardon j'ai oublier le ;
    Mais il bloque toujours

  20. #20
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT ID_site, toponyme FROM [point d'observation] Where [point d'observation]!ID_site <> '0' "
    et comme ça ?

Discussions similaires

  1. Erreur code recherche multi-critères
    Par bétécé dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 23/11/2006, 11h14
  2. Recherche Multi critère (besoin ENCORE d'enrichir le code)
    Par lagratteCchouette dans le forum Access
    Réponses: 9
    Dernier message: 28/03/2006, 21h01
  3. problème SQL avec le tutoriel recherche multi critère
    Par qbihlmaier dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/12/2005, 19h33
  4. problème avec résultat de recherche multi-critères
    Par audrey_desgres dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 11h00
  5. Procédure stockée: recherche multi-critères
    Par biroule dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 01/09/2004, 16h02

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