[Access-Visual Basic] Clause SQL

Do -  
deus Messages postés 93 Statut Membre -
Bonjour,

J'ai le code suivant dans un formulaire:

Dim strFormName As String
Dim strFilterName As String

strFormName = "Etiquette"

strFilterName = "PartNo = Forms!Reception!PartNo"
DoCmd.OpenForm strFormName, acPreview, , strFilterName

Ce qui fonctionne très bien.

Ma question est: Je voudrais ajouter une autre condition à ma variable strFilterName, ex: "PO = Forms!Reception!PO". Donc pour résumé, mon code devrait ressembler à:

strFilterName = "PartNo = Forms!Reception!PartNo" & "PO = Forms!Reception!PO", mais ma syntaxe n'est pas bonne!!?!quelqu'un connait-il la réponse?

Merci beaucoup, c'est grandement apprécié!

2 réponses

  1. Utilisateur anonyme
     
    Salut,

    A défaut de solution ...

    J'ai déjà été confronté à cette manoeuvre et j'ai trouvé
    un petite routine dans un bouquin pour modifier par
    programmation le requête sur laquelle est accroché le
    formulaire, donc même une fois ouvert, je puis modifier
    les critères à l'aide de variable et faire un refresh du formulaire.

    Voici le routine en question :

    Public Function ChangeRequeteDef(ChaineRequete As String, ChaineSQL As String) As Boolean
        
        Dim Definition As Variant
        
        If ((ChaineRequete = "") Or (ChaineSQL = "")) Then
            ChangeRequeteDef = False
        Else
            Set Definition = CurrentDb.QueryDefs(ChaineRequete)
            Definition.SQL = ChaineSQL
            Definition.Close
            RefreshDatabaseWindow
            ChangeRequeteDef = True
        End If
        
    End Function
    


    où ChaineRequete est le nom de la requête et ChaineSQL
    est la définition de la requete.

    ailleurs dans le code je place :

            varComposante = Forms![FormulaireTableComplete].[ztComposanteRecherche]
            Chaine = "Select * from [TableComplete] where [Composante] Like "
            Critere = Chaine & """" & varComposante & "*" & """"
        
            If (ChangeRequeteDef("ReqTableComposante", Critere)) Then
                DoCmd.OpenForm "FormulaireRechercheComposante", acNormal, "", "[Composante]", , acNormal
            End If
    


    je prend le critère dans une liste déroulante -> varComposante
    je reconstruit la requête -> Critere
    j'appelle la routine pour modifier la requete.

    Lupin
    0
  2. deus Messages postés 93 Statut Membre 91
     
    A mon avis tu dois utiliser AND ou lieu de " & " donc

    strFilterName = "PartNo = Forms!Reception!PartNo AND PO = Forms!Reception!PO"

    0