[Access-Visual Basic] Clause SQL

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. A mon avis tu dois utiliser AND ou lieu de " & " donc

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

    0
    1. 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