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 :

Docmd.openform avec plusieurs conditions


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Pwouaro
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut Docmd.openform avec plusieurs conditions
    Bonjour à tous.

    Voilà, j'aimerai ouvrir un formulaire à partir d'un autre en filtrant les enregistrements à partir de la valeur d'un contrôle du premier formulaire.

    J'utilise donc la fonction docmd.openform:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.OpenForm "EMPLOYE1", acNormal, , "EMPLOYE.EMP_ID = " & Me.TXT_ID
    Jusque là tout va bien.
    Mais je voudrais ajouter un paramètre pour le filtre. Dans l'aide access, ils précisent que Wherecondition correspond à la clause WHERE en SQL, mais sans utiliser le WHERE.

    Voilà ce que j'ai tenté de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.OpenForm "EMPLOYE1", acNormal, , "EMPLOYE.EMP_ID = " & Me.TXT_ID & And POINTAGE.POINT_DATE = " & Me.TXT_DATE & ""
    Lorsque j'éxécute le code, un message d'erreur me dit qu'il y a une erreur de syntaxe, en fait il ne met pas d'espace entre la valeur de "TXT_ID" et le "And".

    Auriez-vous une idée svp?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il doit te manquer un " avant le AND (un espace entre les deux).

    Starec

  3. #3
    Membre confirmé Avatar de Pwouaro
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    Merci Starec.
    Apparemment, ça venait de là, car Access ne me demande plus d'entrer la date. De plus dans les options de mon formulaire j'ai bien :

    Filtre : EMPLOYE.EMP_ID = 3 And POINTAGE.POINT_DATE = 19/02/2008

    Voilà ce que ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.OpenForm "EMPLOYE1", acNormal, , "EMPLOYE.EMP_ID = " & Me.TXT_ID & " And POINTAGE.POINT_DATE = " & Me.TXT_DATE & ""
    J'aurais du le préciser dès le départ.... Mais la première condition correspond bien au formulaire "EMPLOYE1", par contre la deuxième correspond au sous formulaire de "EMPLOYE1".

    En d'autres termes, c'est le sous-formulaire qui contient les enregistrements à filtrer. Connaissez-vous un moyen d'affecter le deuxième paramètre au sous-formulaire putôt qu'au formulaire principale?

    Merci d'avance.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Un peu de lecture pour appeler les champs d'un sous-formulaire : http://loufab.developpez.com/appelformulaire/

    Starec

  5. #5
    Membre confirmé Avatar de Pwouaro
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    Merci pour la rapidité de tes réponses starec,

    D'après les info de ton lien, voilà ce que j'ai codé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     DoCmd.OpenForm "EMPLOYE1", acNormal, , "EMPLOYE.EMP_ID = " & Me.TXT_ID & " And Forms.EMPLOYE1.POINTAGE_SF.Form.POINT_DATE = " & Me.TXT_DATE
    Mais access me demande toujours d'entrer une valeur de paramètre.

    J'ai également testé cette syntaxe (toujours par rapport à ce que j'ai lu dans ton lien) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "EMPLOYE1", acNormal, , "EMPLOYE.EMP_ID = " & Me.TXT_ID & " And POINTAGE_SF.POINT_DATE = Forms.POINTAGE.TXT_DATE"
    Access me demande toujours d'entrer une valeur de paramètre. Si j'en tape une, il ouvre le formulaire mais sans appliquer le filtre.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Il faut que tu sorte Forms... de la chaine par concaténation, comme pour le champ qui est dans ton formulaire.

    Starec

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/04/2008, 11h00
  2. Réponses: 1
    Dernier message: 27/06/2007, 16h01
  3. Having avec plusieurs conditions ?
    Par jchatard dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/04/2007, 15h58
  4. Si je fais un if() avec plusieurs conditions ..
    Par Pauli dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2007, 16h47
  5. like avec plusieur condition
    Par wayak3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2007, 11h43

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