[Access-Visual Basic] Clause SQL

Fermé
Do - 23 juin 2005 à 15:03
deus Messages postés 93 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 24 mai 2007 - 23 juin 2005 à 15:23
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é!
A voir également:

2 réponses

Utilisateur anonyme
23 juin 2005 à 15:23
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
deus Messages postés 93 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 24 mai 2007 91
23 juin 2005 à 15:23
A mon avis tu dois utiliser AND ou lieu de " & " donc

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

0