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 :

condition ouverture formulaire


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut condition ouverture formulaire
    bonjour,

    lorsque l'on ouvre un formulaire avec l'objet docmd.openform, il y a une rubrique "where"
    peut-on placer deux conditions das cette rubrique, si oui quelle est la syntaxe
    sur deux condition (par exemple un n° de série et une référence d'article

    merci

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonsoir,
    un exemple avec 2 critères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    docmd.openform "frmDVD",acNormal,,"[Titre] Like ""D*"" AND [durée]>100"
    filtre les DVD commençant par D et dont la durée est > 100 mn

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut ouvrir un formulaire
    merci pour ces éléments mais malheureusement ils ne me permettent pas de résoudre mon problème
    En effet je double clique sur le champ d'un sous formulaire pour ouvrir un formulaire en fonction d'un n° de phase. Cette ouverture se passe correctement , mais cette ouverture devrait prendre un second élément et je n'arrive donc pas à faire une clause avec deux conditions
    Dans ta solution tu connais au départ les éléments de tri, mais mois il dépendent d'un choix aléatoire
    merci

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 115
    Points : 274
    Points
    274
    Par défaut
    Bonjour,

    Je pense qu'il faut tout simplement mettre dans ton filtre la référence aux deux champs qui serviront de critères :

    Au lieu d'utiliser "Like" tu mets par ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.openform "MonDeuxièmeFormulaire",,"[Champ1DuDeuxièmeFormulaire]=" & [Champ1DuPremierFormulaire]" AND "[Champ2DuDeuxièmeFormulaire]=" & [Champ2DuPremierFormulaire]"
    ...

    Le deuxième guillemet fermant à la suite du signe = et rajoutant un "&" ensuite et non l'inverse.

    Suivant le cas tu mets soit Me.[nomduchamp] comme référence, soit le chemin complet : forms![NomduPremierFormulaire]![NomDuPremierChampCritère] dans l'event click de ton bouton ou procédure.

    Mais il se peut qu'il n'y ai pas de correspondance dans un des deux champs de critère, il faudra gérer cette éventualité ...

    C'est juste pour que tu vois la logique à appliquer

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut ouverture formulaire
    merci pour cette réponse, dés que j'ai le temps j'essaie cette solution

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut ouvrir un formulaire
    j'ai essayé mais cela ne fonctionne pas, j'ai mis un espion et j'ai pu remarquer qu'il prenait les bonnes données. Cependant il semble y avoir une incompatibilité de type (un des champ est une chaine , l'autre un numérique)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub NUM_OPE_DblClick(Cancel As Integer)
    DoCmd.OpenForm "FORMLIER ", acNormal, , "[NUM_OPE] =FORMS![FORMVALIDOPERATION]![FORMOPEPHASE sous-formulaire]![NUM_OPE]"
    End Sub
    Avec ce code j'obtiens bien une ouverture sur un n° d'opération mais si je place un AND et la suite du code pour avoir également un autre critère l'évènement bug

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 115
    Points : 274
    Points
    274
    Par défaut
    Tu n'as pas suivi le conseil :

    Il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[ChampDuForm2]=" &[ChampDuForm1]
    Le guillemet se met après le signe égal...

    Essaye déjà comme ça, on verra ensuite pour le deuxième critère...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut ouvrir un formulaire
    MERCI DE NOUVEAU
    Effectivement cela

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut ouvrir un formulaire
    merci, mille excuse pour le message précèdent qui est parti avant que je ne puisse le finir

    avec ta syntaxe ça fonctionne bien avec le premier élément, comment faire pour faire passer le second ?
    merci

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut condition ouverture formulaire
    hier soir j'ai donc essayé le code que tu m'a donné et ça fonctionne pour un critère
    Ce matin j'essaie pour les deux critères qui m'intéresse , j'ai donc reconduit le code avec un "AND"
    Mais j'obtiens un message d'erreur d'exécution 13- incompatibilité de type
    NUM_OPE est numérique et NUM_SERIE est texte
    J'ai donc essayer de transformer le NUM_SERIE en INT (cf code) mais j'obtiens toujours le même message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "formlier", , , "[NUM_OPE]= " & [NUM_OPE] And (CInt("[NUM_SERIE]=") & (CInt([NUM_SERIE])))
    quelqu'un aurait-il une idée

  11. #11
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 115
    Points : 274
    Points
    274
    Par défaut
    Essaies avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And "CInt([NUM_SERIE])=" & CInt([NUM_SERIE])
    Il faudra peut être préciser le nom du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And "CInt(Forms![MonForm2].[NUM_SERIE])=" & CInt(Forms![MonForm1].[NUM_SERIE])
    car tu dois signaler à quel formulaire appartient chaque controle.

    Attention de ne pas englober ni le signe égal ni le "&" dans la parenthèse !, vérifies bien les parenthèses fermantes aussi, tu en mettais deux de trop ...

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut
    j'ai essayé avec la premiere SOLUTION, j'obtiens un message d'erreur du type "DEPASSEMENT DE CAPACITE"
    ERREUR 6
    Pour la seconde y-a-til un ordre dans l'appel des formulaires
    Faut-il mettre à gauche le départ et à droite l'arrivée, ou le contraire ou bien cela n'a aucune importance
    merci

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 232
    Points : 114
    Points
    114
    Par défaut o
    Ouf§§§
    j'y suis arrivé, en parcourant les différents post je suis tombé sur un sujet identique que j'ai arrangé

    La question de départ:
    Comment ouvrir un formulaire à partir d'un autre formulaire ou sous formalaire avec 2 critères (et de type différent)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim stlinkCriteria As String
    Dim stlinkCriteria2 As String
     
     
    stlinkCriteria = "[NUM_OPE]=" & Me![NUM_OPE] & ""
    stlinkCriteria2 = "AND [NUM_SERIE]='" & Me![NUM_SERIE] & "'"
    DoCmd.OpenForm "formlier", , , stlinkCriteria & stlinkCriteria2
    Je joins également les remarques qui étaient jointes et qui m'ont permis de trouver une solution

    "Ensuite tu dois t'assurer que les critères sont bien de type texte comme tu le spécifie en utilisant les simples cote.

    Si dans la table elles sont de type numérique tu dois enlever les cotes."

    Merci à tous pour cette aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Problemes condition ouverture formulaire
    Par Alann dans le forum IHM
    Réponses: 2
    Dernier message: 01/07/2014, 09h18
  2. Condition Where sur ouverture formulaire
    Par Gilles93 dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/05/2014, 13h12
  3. Macro avec plusieurs conditions pour ouverture formulaire
    Par Jacques-Henri dans le forum IHM
    Réponses: 2
    Dernier message: 05/08/2008, 22h44
  4. Réponses: 3
    Dernier message: 16/02/2006, 16h58
  5. Ouverture formulaire sur enregistrement precis
    Par mat_lefebvre dans le forum IHM
    Réponses: 7
    Dernier message: 11/10/2004, 15h37

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