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 :

Ouverture formulaire à partir d'un autre


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut Ouverture formulaire à partir d'un autre
    J’ai un formulaire F1 à partir duquel un bouton de commande ouvre le formulaire F2 selon une programmation VBA mettant en relation 2 champs identiques ( bouton cde de la boîte à outils). Mon F2 s’ouvre bien dès que je clique sur bouton. Mais ce que je veux c’est empêcher l’ouverture de F2 si un champ précis, et donc différent des 2 premierss est vide (fonction isnull ).Je n’arrive pas à insérer la bonne instruction dans le code VBA.
    J’ai bien regardé sur le forum : « ouverture formulaire vide » et « comment ouvrir un formulaire en fonction d’une valeur contenue dans un autre formulaire mais ça ne correspond pas tout çà fait à ce que je souhaite càd : modifier ou adapter le code VBA sur mon bouton de commande.

    Merci de m’aider pour la solution

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonsoir,

    Quelque chose dans le genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "", , , "[Champ1]=" & Me.Zone1 & " And [Champ2]='" & Me.Zone2 & "'" & " And Not IsNull([Zone3])"
    en considérant que Zone1 est numérique, que Zone2 est alphanumérique et que le champ Zone3 n'est pas nul.

    A+

  3. #3
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut
    Je suis un peu perdu avec les éléments de ta réponse. Je pensais à quelque chose avec if ... then ...else et j'ai essayé plusieurs fois ceci en tatant par ci par là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim stDocName As String
        Dim stLinkCriteria As String
        stDocName = "Nom_FORMULAIRE F2"
    If IsNull(Forms![Nom_FORMULAIRE F2]![Nom_contrôleF2]) Then
    MsgBox "Message",vb...
    Else
        stLinkCriteria = "[Nom_champF2]=" & Me![Nom_champF1]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    Aucun message d'erreur s'affiche , seulement le formulaire F2 ne s'ouvre pas quand on clique sur le bouton de commande sur formulaire F1.
    Merci pour ton avis.

  4. #4
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    912
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 912
    Points : 1 371
    Points
    1 371
    Par défaut
    Regarde ce post-ci, le code pourrait te servir.

  5. #5
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut
    Je te remercie d'essayer de m'aider. Ne voyant rien venir de l'un ou de l'autre.Bon j'ai déjà fait une première lecture et peut-être que je pourrais en tirer quelque chose. Je vais examiner à la loupe et j'espère solutionner ce problème.Je vous tiens au courant. Merci encore.

  6. #6
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut
    Bonne nouvelle, j'ai une piste.Sur base du conseil de reçu de Gabout, j'ai supprimé if isnull... et ajouté une instruction sur une ligne
    avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim stDocName As String
        Dim stLinkCriteria As String
        stDocName = "Nom_FORMULAIRE F2"
    If IsNull(Forms![Nom_FORMULAIRE F2]![Nom_contrôleF2]) Then
    MsgBox "Message",vb...
    Else
        stLinkCriteria = "[Nom_champF2]=" & Me![Nom_champF1]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim stDocName As String
        Dim stLinkCriteria As String
        stDocName = "Nom_FORMULAIRE F2" 
        stLinkCriteria = "[Nom_champF2]=" & Me![Nom_champF1]&" And Not IsNull ([Nom champ precis])"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    Surprise le formulaire F2 s'ouvre normalement si champ précis non nul.Par contre si champ précis nul , le form F2 s'ouvre vierge?
    Y aurait-il une solution pour ne pas ouvrir le form F2 vierge avec un message Msgbox.Je serais heureux mon problème de départ serait résolu. Merci

  7. #7
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    912
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 912
    Points : 1 371
    Points
    1 371
    Par défaut
    Si ton problème est toujours d'actualité, reformule un peu ton besoin, j'ai du mal à comprendre !

    Tu ne veux ouvrir le formulaire F2 que s'il y existe un correspondant au record affiché dans F1 ?

  8. #8
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut
    Tout d'abord merci de t'inquiéter. En fait je voulais ouvrir un form F2 à partir d'un form F1 sur un champ précis du form F2 avec l'instruction if isnull [champ_précis] then ...Mais je n'y suis pas arrivé. ET je disais donc que Gabout m'a mis sur la piste ave l'instruction "not isnull", puisque mon F2 s'ouvre si mon [champ_précis] n'est pas nul mais qu'il s'ouvre aussi s'il est nul mais cette il s'ouvre vierge. Entretemps, j'ai trouvé la solution dans la FAQ "trucs et astuces" " comment ne pas ouvrir un formulaire si celui-ci est vide" . J'ai appliqué sur ouverture le code VBA indiqué dans cette rubrique et ça fonctionne parfaitement.Merci à toi et aux autres , vous êtes sympas.

  9. #9
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 406
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Juste un complément que j'essaie d'utiliser au maximum : je traite l'absence en amont.

    Plutôt que de lancer l'ouverture d'un formulaire (ou d'un état) en fonction de critères, je calcule s'il existe des enregistrements correspondants.

    S'il n'y en a pas, je lance un message d'avertissement et je quitte la procédure, sinon j'ouvre le formulaire (ou l'état).

    A+

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

Discussions similaires

  1. [AC-2007] Ouverture formulaire à partir d'un autre formulaire
    Par marin_kaout dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/02/2015, 12h21
  2. Ouverture formulaire à partir d'un autre
    Par jcp66 dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/08/2007, 22h11
  3. préremplir un formulaire à partir d'un autre
    Par Ludo11 dans le forum IHM
    Réponses: 4
    Dernier message: 21/05/2007, 10h08
  4. Réponses: 2
    Dernier message: 09/05/2007, 18h43
  5. Charger un formulaire à partir d'un autre
    Par nicou50 dans le forum Access
    Réponses: 9
    Dernier message: 14/09/2006, 04h30

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