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 :

Multi critere sur 2 tables possible?


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut Multi critere sur 2 tables possible?
    Bonjour
    je viens de réaliser le tutoriel de cafeine sur la recherche multi critere mais j'ai un problème et 2 question

    Je n'ai rien qui s'affiche dans ma zone liste de résultat
    voici mon code (pour info je m'y connais peu même pas du tout en 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
     
    Private Sub chkdept_Click()
    If Me.chkdept Then
        Me.cmbdept.Visible = False
    Else
        Me.cmbdept.Visible = True
    End If
       RefreshQuery
    End Sub
     
    Private Sub chkpays_Click()
    If Me.chkpays Then
    Me.cmbpays.Visible = False
    Else
    Me.cmbpays.Visible = True
    End If
     
       RefreshQuery
     
    End Sub
     
     
    Private Sub RefreshQuery()
     Dim SQL As String
     Dim SQLWhere As String
     
     SQL = "SELECT Département,  pays FROM Client "
     If Me.chkpays Then
        SQL = SQL & "And Client!pays = '*" & Me.cmbpays & "*' "
     End If
     If Me.chkdept Then
        SQL = SQL & "And Client!département = '*" & Me.cmbdept & "' "
     End If
     
     
     
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     
     Me.lstresul.RowSource = SQL
     Me.lstresul.Requery
     
    End Sub
     
     
    Private Sub cmbdept_BeforeUpdate(Cancel As Integer)
    RefreshQuery
    End Sub
     
    Private Sub cmbpays_BeforeUpdate(Cancel As Integer)
    RefreshQuery
    End Sub
     
    Private Sub cmbsecteur_BeforeUpdate(Cancel As Integer)
    RefreshQuery
    End Sub
     
    Private Sub Form_Load()
    Dim ctl As Control
     
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "chk"
                ctl.Value = -1
            Case "cmb"
                ctl.Visible = False
        End Select
    Next ctl
     
    Me.lstresul.RowSource = "SELECT pays, département FROM Client;"
    Me.lstresul.Requery
     
    End Sub



    C'est exactement comme dans le tuto et je ne vois pas mon erreur si vous pouviez m'aidez as serait cool

    ensuite dans ce code j'aimerais rajouter le critere "secteur" venant de la table produit
    es ce que cela est possible?

    et pour finir j'aimerais mettre un groupe d'option (fournisseur ou sous traitant en option) dans cette recherche.

    Mais comme dit plus haut je n'y connais pas grand chose en ligne de code
    Si vous pouviez me dire quoi mettre et où je vous serait infiniement reconnaissant.

    J'espere que je suis assez clair dans mes explications et dans mes attentes

  2. #2
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    Il ne devrait pas y avoir de problème.

    Dans ton code rajoute un
    Ainsi ta requête s'affichera dans la fenêtre d'exécution. Ensuite crée une requête vide dans Access et colles-y le texte SQL.
    Tu verras si ça renvoie des résultats. Et si ça n'est pas le cas c'est tout simplement qu'aucun enregistrement de correspond aux critères.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut
    Et je rajoute où le bout de code? comme sa sans forcement le mettre dans un truc?

    et pour le fait de prendre un critère sur une autre table quel est la formule pour pouvoir l'ajouter?

    SQL = "SELECT Département, pays FROM Client where Client!Société <> 0 " " & " SELECT secteur FROM Produit where Produit!produits <> 0"

    genre faut mettre un truc comme sa?

    désolé je suis une buse en code faut bien me dire que faire sinon je n'y arrive pas

    merci de m'aidez

  4. #4
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub RefreshQuery()
     Dim SQL As String
     Dim SQLWhere As String
     
     SQL = "SELECT Département,  pays FROM Client "
     If Me.chkpays Then
        SQL = SQL & "And Client!pays = '*" & Me.cmbpays & "*' "
     End If
     If Me.chkdept Then
        SQL = SQL & "And Client!département = '*" & Me.cmbdept & "' "
     End If
     
    Debug.Print SQL

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut
    oki g les rajouter mais rien n'est apparu ("Ainsi ta requête s'affichera dans la fenêtre d'exécution. Ensuite crée une requête vide dans Access et colles-y le texte SQL") comme tu dis et je vois pas comment mettre mon code dans ma requete que je doit creer (je vous les dit je suis une buse en code lol)

    et sinon es ce que ma phrase de code était bonne pour rajouter un critere provenant d'une autre table ou pas du tout?

    Je sais que vous souhaitez que l'on recherche pas nous même les réponses j'ai lu vos remarques mais j'essaye de faire le maximum d'effort mais il faut quand même avouez que access ces dur

  6. #6
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    oki g les rajouter mais rien n'est apparu ("Ainsi ta requête s'affichera dans la fenêtre d'exécution. Ensuite crée une requête vide dans Access et colles-y le texte SQL")
    Extrait de la faq : Pour afficher cette fenêtre, rendez-vous dans VBA, menu Affichage, Fenêtre Exécution.
    (il y a aussi un raccourci clavier mais je ne l'ai plus en tête ... ctrl+F ?)

    j'ai lu vos remarques mais j'essaye de faire le maximum d'effort mais il faut quand même avouez que access ces dur
    Toute nouvelle technologie est difficile à utiliser au début Surtout que là c'est non seulement un langage mais tout un logiciel auquel il faut s'acoutumer.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut
    Quand je clique sur la case pays la barre defillante apparait mais des que je clique sur la barre defillante voici le message que accesse me met

    "Dans la clause LEVEL, un mot réservé ou un argument est mal orthographiées ou absent ou la ponctuation est incorrecte"


    C'est quoi la "clause LEVEL"??? quelqu'un peut m'expliqué? m'aidé??

Discussions similaires

  1. Tri multi-criteres sur une liste d'objets
    Par Rolf-IV dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 01/04/2009, 08h21
  2. [A-00] recherche d'une critere sur 2 tables via une requête
    Par metallicavid dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 12/02/2009, 10h21
  3. Réponses: 6
    Dernier message: 18/03/2007, 16h22
  4. Multi critère sur plusieurs tables
    Par djpit dans le forum Access
    Réponses: 4
    Dernier message: 24/08/2006, 17h49
  5. Réponses: 14
    Dernier message: 15/06/2005, 13h14

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