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 :

Probleme ouverture formulaire sur un enregistrement préci


Sujet :

VBA Access

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 35
    Par défaut Probleme ouverture formulaire sur un enregistrement préci
    Bonjour

    J'ai crée un formulaire en mode tabulaire qui me permet d'acceder à d'autre formulaire en cliquant sur le numero de chrono.j'ai 2 type de formulaire ( F1, F2) au quels je peux acceder peuvent avoir le meme identifiant dans ce cas j'ai fait de sorte que quand ca se produit j'accede au formulaire F2 .

    le code que j'ai ecris à bien marché pour les 3 premier enregistrement,et pour le reste j'accede tjs au formulaire type F1 .

    ci- apres le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub Chrono_solicitation_Click()
     
    DoCmd.OpenForm "Accueil Entreprise"
    DoCmd.OpenForm "Accueil_labo"
    DoCmd.OpenForm "Accueil_Independant"
     
    If Forms![Accueil Entreprise]!id.Value = Me![Chrono solicitation].Value Then
    DoCmd.Close acForm, "Accueil Entreprise", acSaveNo
    DoCmd.Close acForm, "Accueil_labo", acSaveNo
    DoCmd.Close acForm, "Accueil_Independant", acSaveNo
    DoCmd.OpenForm "Accueil Entreprise", acNormal, , "[id] =" & Me.[chrono]
     
    ElseIf Forms![Accueil_labo]!id.Value = Me![Chrono solicitation].Value Then
    DoCmd.Close acForm, "Accueil_labo", acSaveNo
    DoCmd.Close acForm, "Accueil Entreprise", acSaveNo
    DoCmd.Close acForm, "Accueil_Independant", acSaveNo
     
    DoCmd.OpenForm "Accueil_labo", acNormal, , "[id] =" & Me.[chrono]
     
    ElseIf Forms![Accueil_Independant]!id.Value = Me![Chrono solicitation].Value Then
    DoCmd.Close acForm, "Accueil_labo", acSaveNo
    DoCmd.Close acForm, "Accueil Entreprise", acSaveNo
    DoCmd.Close acForm, "Accueil_Independant", acSaveNo
     
    DoCmd.OpenForm "Accueil_Independant", acNormal, , "[id] =" & Me.[chrono]
    Else: DoCmd.OpenForm "Accueil MI", acNormal, , "[chrono] =" & Me.[chrono]
    DoCmd.Close acForm, "Accueil_labo", acSaveNo
    DoCmd.Close acForm, "Accueil Entreprise", acSaveNo
    DoCmd.Close acForm, "Accueil_Independant", acSaveNo
     
    End If

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Je te sugère de mettre un point d'arrêt au début de ton code (en cliquant dans la marge à gauche) et de suivre ton éxécution pas à pas, cela devrait te permettre de comprendre ce qui ne va pas.

    Aussi j'essaierai de réduire la redondance de code en faisant un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    dim tNomForm as variant:tNomForm=Array("Accueil Entreprise", "Accueil Entreprise", "Accueil_labo", "Accueil_Independant")
     
    dim i as long
    dim j as long
     
    for i=lbound(tNomForm()) to ubound(tNomForm())
       DoCmd.openForm tNomForm(i)
    next i
     
    dim f as form
     
    for i=lbound(tNomForm()) to ubound(tNomForm())
       set f=forms(tNomForm(i))
     
       if f.controls("id")=me![Chrono solicitation] then
     
         for j=lbound(tNomForm()) to ubound(tNomForm())
            DoCmd.Close, acForm, tNomForm(j)
         next j
     
         DoCmd.openForm tNomForm(i),,,"[id] =" & Me.[chrono]
     
         exit for
       end if
     
    next i
     
    set f=nothing
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [AC-2010] Ouverture de formulaire sur un enregistrement précis
    Par theolivier dans le forum IHM
    Réponses: 20
    Dernier message: 24/09/2012, 18h40
  2. [AC-2003] Ouverture d'un formulaire sur un enregistrement précis
    Par Jeanpierre71 dans le forum IHM
    Réponses: 7
    Dernier message: 10/10/2011, 17h56
  3. [AC-2002] Ouverture formulaire sur nouvel enregistrement
    Par Auron89 dans le forum IHM
    Réponses: 8
    Dernier message: 07/06/2010, 07h47
  4. Ouverture d'un formulaire sur un enregistrement précis
    Par Halzard dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/06/2007, 14h36
  5. Réponses: 1
    Dernier message: 06/07/2006, 14h44

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