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

Requêtes et SQL. Discussion :

Application de la recherche multi criteres [AC-2003]


Sujet :

Requêtes et SQL.

  1. #21
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 20
    Points
    20
    Par défaut
    mmm.., tjrs pas! Tjrs cette meme erreur...
    Rien y fait
    Voici mon code quand meme,

    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
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
     
    SQL = "SELECT * FROM QueryMaterialsANDSuppliers(All) Where QueryMaterialsANDSuppliers(All)!IDMaterial <> 0 "
     
    If Me.chkIDMaterial Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!IDMaterial = ' & Me.txtIDMaterial & ' "
    End If
    If Me.chkMaterialType Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!MaterialType = '" & Me.cmbMaterialType & "' "
    End If
    If Me.chkMaterialName Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!MaterialName like '*" & Me.txtMaterialName & "*' "
    End If
    If Me.chkHeatTreatment Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!HeatTreatment = '" & Me.cmbHeatTreatment & "' "
    End If
    If Me.chkPreTreatment Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!PreTreatment = '" & Me.cmbPreTreatment & "' "
    End If
    If Me.chkPreTreatmentSupplier Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!PreTreatmentSupplier = '" & Me.cmbPreTreatmentSupplier & "' "
    End If
    If Me.chkFabricationProcess Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!FabricationProcess = '" & Me.cmbFabricationProcess & "' "
    End If
    If Me.chkIDSupplier Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!IDSupplier = ' & Me.txtIDSupplier & ' "
    End If
    If Me.chkSupplierName Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!SupplierName like '*" & Me.txtSupplierName & "*' "
    End If
    If Me.chkTown Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!Town like '*" & Me.txtTown & "*' "
    End If
    If Me.chkCountry Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!Country = '" & Me.cmbCountry & "' "
    End If
    If Me.chkContact Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!Contact like '*" & Me.txtContact & "*' "
    End If
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     
    SQL = SQL & ";"
     
     
    Me.lblStats.Caption = DCount("*", "QueryMaterialsANDSuppliers(All)", SQLWhere) & " / " & DCount("*", "QueryMaterialsANDSuppliers(All)")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery

  2. #22
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 665
    Points : 34 373
    Points
    34 373
    Par défaut
    je remets le lien sur le cours du SQL sous Access :
    http://access.developpez.com/sql/#L1.1.3

    je te corrige une erreur, tu trouveras les autres cas tout seul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.chkIDMaterial Then
        SQL = SQL & "And QueryMaterialsANDSuppliers(All)!IDMaterial = " & Me.txtIDMaterial & " "
    End If

  3. #23
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 20
    Points
    20
    Par défaut
    J'ai modifié ce que tu m'avais recommandé... sa ne fonctionnait tjrs pas!
    J'ai essayé carrément autre chose, meme logique mais avec d'autres entrées et solutions trouvées, sa fonctionne.
    Pour info si ca peut en interesser certains je mets "une solution" a mon probleme:

    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
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
     
    SQL = "SELECT Materials.IDMaterial, Materials.MaterialType, Materials.MaterialName, Materials.HeatTreatment, Materials.PreTreatment, Materials.PreTreatmentSupplier, Materials.FabricationProcess, Materials.YoungModulus, Materials.UltimateTensileStress, Materials.Elongation, Materials.PoissonRatio, Materials.Density, Materials.Specification, Materials.LastUpdated, Suppliers.IDSupplier, Suppliers.SupplierName, Suppliers.Postcode, Suppliers.Adress, Suppliers.Town, Suppliers.Country, Suppliers.WebSite, Suppliers.Contact, Suppliers.[E-mail], Suppliers.Telephone, Suppliers.Fax, Suppliers.LastUpdated FROM Suppliers INNER JOIN Materials ON Suppliers.IDSupplier = Materials.IDSupplier Where Materials!IDMaterial <> 0 "
     
    If Me.chkIDMaterial Then
        SQL = SQL & "and Materials!IDMaterial = " & Me.txtIDMaterial & " "
    End If
    If Me.chkMaterialType Then
        SQL = SQL & "and Materials!MaterialType = '" & Me.cmbMaterialType & "' "
    End If
    If Me.chkMaterialName Then
        SQL = SQL & "and Materials!MaterialName like '*" & Me.txtMaterialName & "*' "
    End If
    If Me.chkHeatTreatment Then
        SQL = SQL & "and Materials!HeatTreatment = '" & Me.cmbHeatTreatment & "' "
    End If
    If Me.chkPreTreatment Then
        SQL = SQL & "and Materials!PreTreatment = '" & Me.cmbPreTreatment & "' "
    End If
    If Me.chkPreTreatmentSupplier Then
        SQL = SQL & "and Materials!PreTreatmentSupplier = '" & Me.cmbPreTreatmentSupplier & "' "
    End If
    If Me.chkFabricationProcess Then
        SQL = SQL & "and Materials!FabricationProcess = '" & Me.cmbFabricationProcess & "' "
    End If
    If Me.chkIDSupplier Then
        SQL = SQL & "And Suppliers!IDSupplier = " & Me.txtIDSupplier & " "
    End If
    If Me.chkSupplierName Then
        SQL = SQL & "And Suppliers!SupplierName like '*" & Me.txtSupplierName & "*' "
    End If
    If Me.chkTown Then
        SQL = SQL & "And Suppliers!Town like '*" & Me.txtTown & "*' "
    End If
    If Me.chkCountry Then
        SQL = SQL & "And Suppliers!Country = '" & Me.cmbCountry & "' "
    End If
    If Me.chkContact Then
        SQL = SQL & "And Suppliers!Contact like '*" & Me.txtContact & "*' "
    End If
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     
    SQL = SQL & ";"
     
    Me.lblStats.Caption = DCount("*", "Materials", SQLWhere) & " / " & DCount("*", "Materials")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
    Cependant une derniere remarque, si vous aviez des suggestions, ma fonction comptage (3eme ligne en partant de la fin ne fonctionne pas)... lorsque je mets par exemple "IDSupplier = 3", donc sur la table "Suppliers" et que je fais "rechercher", il me mets l'erreur suivante (cf. fichier joint). Cette erreur n'apparait pas lorsque je fais une recherche a partir de champs de la table "Materials"....

    Voila! Bon c'est deja pas mal, reste plus que cette petite erreur

    Cosmo
    Images attachées Images attachées  

  4. #24
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 20
    Points
    20
    Par défaut
    Personne pour cette "Run-time Error 2001 you canceled the previous operation"?
    En fait je viens de m'apercevoir que la fonction ne fonctionne que pour une recherche via la table "Materials"....des que je recherche sur des champs de la table "Suppliers", Access me sort cette erreur.
    Il y a quelque chose que je n'ai pas du comprendre...
    Merci pour vos reponses

  5. #25
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 20
    Points
    20
    Par défaut
    Rebonjour,
    Je vous fais part de mon avancement, et par la meme, de ce qui me bloque:
    Desormais la recherche multicriteres et multitable fonctionne tres bien.
    Seul probleme restant, ma fonction comptage qui permet d'obtenir le nombre d'enregistrement restant apres recherche.
    N'hesitez pas si vous avez des suggestions, parce que la je seche ...

    Cosmo

  6. #26
    Membre à l'essai
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 20
    Points
    20
    Par défaut
    C'est bon, trouvé ,
    Il suffisait de baser la fonction Dcount sur la requete "QueryMaterialsANDSuppliers(All)" et non sur la table "Materials"!!

    Probleme complet resolu cette fois

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Recherche Multi-criteres dans un formulaire
    Par valery17 dans le forum Access
    Réponses: 6
    Dernier message: 22/05/2006, 17h17
  2. [formulaire] recherche multi criteres
    Par Treuze dans le forum IHM
    Réponses: 3
    Dernier message: 10/01/2006, 11h36
  3. [Collections]Implémenter une recherche multi-critère performante
    Par ppaul127 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 29/12/2005, 15h38
  4. gui pour recherche multi critere
    Par komando dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 02/12/2005, 20h08
  5. Réponses: 14
    Dernier message: 15/06/2005, 14h14

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