Ouvrir formulaire sur enreg spécifique access

Bonjour à tous,

Je suis sous access 2007 et je crée plusieurs formulaires qui se rapportent à la même table pour plus de clarté, j'aimerais pouvoir créer un bouton sur l'un de ces formulaires qui me permettrait d'accéder à un autre formulaire. Là où ça se complique c'est que j'aimerais que lorsque l'on clique sur le bouton le second formulaire ouvre le même enregistrement que celui que j'étais en train de consulter sur le formulaire précédent.

J'ai essayé en utilisant l'assistant qui me propose de renvoyer à un enregistrement spécifique, mais rien à faire il m'ouvre toujours le formulaire sur le premier enregistrement.

C'est pour un stage et c'est très important s'il vous plaît j'aimerais des réponses assez simple parce que je ne connais pas du tout le visual basic et j'en aie besoin assez rapidement.

ps : j'ai beaucoup cherché et je ne trouve aucune réponse applicable dans mon cas ou du moins je ne suis pas capable de les appliquer.

Merci d'avance à tous le monde

21 réponses

  1. Merci à vous deux pour votre aide j'ai résolue mon problème en modifiant ma clef primaire avec un NuméroAuto c'est plus simple et ça automatisera certaines choses dont j'avais besoin. Enfin merci encore pour votre aide et vos explications ça fonctionne nikel !
    2
    1. Bonjour, essayez de garder dans ton code que ça :

      Private Sub Commande86_Click()
      On Error GoTo Err_Commande86_Click

      Dim StrFiltre As String

      StrFiltre = "[Code Groupe] = " & Me![Code Groupe] // faites attention aux guillemets//

      DoCmd.OpenForm "Licences diverses groupe", , StrFiltre

      Exit_Commande86_Click:
      Exit Sub

      Err_Commande86_Click:
      MsgBox Err.Description
      Resume Exit_Commande86_Click

      End Sub

      ou voilà un autre code que j'utilise et ça marche même sur les champs texte:

      Private Sub OK_Click()
      On Error GoTo Err_OK_Click

      Dim dbscurrent As Database
      Dim rst As Recordset

      Set dbscurrent = CurrentDb
      Set rst = dbscurrent.OpenRecordset("Employés") 'Table employés

      s = 0

      For i = 0 To rst.RecordCount - 1

      If rst.Fields("CodeEmployé") = Me!MatEmp Then
      s = 1
      End If

      rst.MoveNext

      Next i

      If s = 0 Then
      MsgBox "Cette matricule n'est pas valide.", vbInformation, "OeSGest"
      Me!MatEmp.SetFocus

      Else
      DoCmd.OpenForm "Employés1"
      Me.Visible = False

      End If

      Exit_OK_Click:
      Exit Sub

      Err_OK_Click:
      MsgBox Err.Description
      Resume Exit_OK_Click

      End Sub
      1
      1. S'il vous plaît personne ne peut m'aider ?
        0
        1. Salut quel est la clé primaire de ta table ?

          exemple ds ta tale tu as un numero auto appelé n°

          Tu creer un bouton et sur clic tu met procedure evenementielle :

          DoCmd.OpenForm "nom_du_formulaire", acNormal, , "[ici le nom du champ dans le formulaire que tu vas puvrir] = Me.n°

          Attention recopie exactement le meme nombre de virgule
          0
          1. Salut, tout d'abord merci de ta réponse.

            Le nom de ma clé primaire est Code Groupe.

            J'ai testé avec ton code, cela donne :

            Private Sub Commande85_Click()
            DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] = Me.Code groupe"
            End Sub

            ça ne fonctionne pas voila le message que je reçois :

            Erreur d'exécution '3075'

            Erreur de syntaxe (opérateur absent) dans l'expression "[Code groupe] = Me.Code groupe".

            Voila merci encore pour ta réponse
            0
            1. essai ca :

              Private Sub Commande85_Click()
              DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] ="Me.Code groupe
              End Sub
              0
              1. désolé c comme ca g oublié un petit &

                Private Sub Commande85_Click()
                DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] =" & Me.Code groupe
                End Sub
                0
                1. Et bien quand je test avec ce nouveau code access me dit qu'il y a une " erreur de compilation : erreur de syntaxe "

                  Alors j'ai essayé avec un underscore dans le dernier code groupe comme ceci :

                  Private Sub Commande85_Click()
                  DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] =" & Me.Code_Groupe

                  End Sub

                  Et la il me demande d'entrer une valeur, par exemple si je suis sur l'enregistrement 1 qui a pour clé primaire gp1 j'ai un inputbox qui s'ouvre avec gp1 et une zone a remplir et en titre "Entrer une valeur de paramètre.

                  Voila merci encore pour tes conseils
                  0
                  1. excuse moi

                    Private Sub Commande85_Click()
                    DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] =" & Me.[Code groupe]
                    End Sub
                    0
                    1. J'ai le même message d'erreur avec ce nouveau code.
                      0
                      1. lol j'avais pas vu mon erreur

                        Private Sub Commande85_Click()
                        DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] ="Me.[Code groupe]
                        End Sub
                        0
                        1. Et bien je dois être maudit ça ne fonctionne toujours pas.
                          0
                          1. lol

                            ton code groupe c bien du numerique?
                            0
                            1. euh non je crois que tu as mis le doigt sur quelque chose, le code groupe c'est "gp1, gp2, gp3..."

                              merci encore de ton aide
                              0
                              1. salut mon ami, c'est avec un grand plaisir que je vous apporte mon aide, j'espère seulement qu'elle vous soit utile.

                                Ouvrez visual basic editor dans le menu Outils/Macro
                                Dans la liste déroulante (Général) sélectionnez votre bouton de commande

                                vous aurez:
                                Private sub (Votre bouton de commande)_Click()

                                End sub

                                Private Sub ModifParam_Click()
                                On Error GoTo Err_ModifParam_Click

                                Dim StrFiltre As String

                                StrFiltre = "[RéfProduit]= " & Me![RéfProduit]

                                DoCmd.OpenForm "Produits", , StrFiltre

                                Form_Produits.filter = StrFiltre
                                Form_Produits.FilterOn = True

                                Exit_ModifParam_Click:
                                Exit Sub

                                Err_ModifParam_Click:
                                MsgBox Err.Description
                                Resume Exit_ModifParam_Click

                                End Sub

                                essayez cette procédure et bonne chance.
                                0
                                1. pardon , J'ai oublié de vous faire voir la procédure que moi même j'ai utilisé et ça marche trés bien, la voilà :

                                  Private Sub Commande63_Click()
                                  On Error GoTo Err_Commande63_Click

                                  Dim StrFiltre As String

                                  StrFiltre = "[RéfProduit]= " & Me![RéfProduit]

                                  If Not IsNull([Form_ReqDétailsAchats Sous-formulaire].RéfProduit) Then

                                  DoCmd.OpenForm "Produits", , StrFiltre

                                  Form_Produits.Texte29.Visible = False
                                  Form_Produits.Commande42.Visible = False
                                  Form_Produits.ActualiserEchanges.Visible = False

                                  Form_Produits.filter = StrFiltre
                                  Form_Produits.FilterOn = True

                                  Else
                                  MsgBox " Selectionnez d'abord un produit dans la grille ", vbInformation, " GestPharma "

                                  End If

                                  Exit_Commande63_Click:
                                  Exit Sub

                                  Err_Commande63_Click:
                                  MsgBox Err.Description
                                  Resume Exit_Commande63_Click

                                  End Sub
                                  0
                                  1. Tout d'abord merci beaucoup de votre aide.

                                    Alors ça ne fonctionne pas Access ne trouve pas l'objet "Faux".

                                    Voila mon code :

                                    Private Sub Commande86_Click()
                                    On Error GoTo Err_Commande86_Click

                                    Dim StrFiltre As String

                                    StrFiltre = [Code Groupe] = " & Me![Code Groupe]"

                                    DoCmd.OpenForm "Licences diverses groupe", , StrFiltre

                                    Form_Licences_diverses_groupe.Filter = StrFiltre
                                    Form_Licences_diverses_groupe.FilterOn = True

                                    Exit_Commande86_Click:
                                    Exit Sub

                                    Err_Commande86_Click:
                                    MsgBox Err.Description
                                    Resume Exit_Commande86_Click
                                    End Sub

                                    La solution de moiced59 fonctionne si je mets ma clef primaire en type numérique, mais j'aimerais bien garder mes deux lettres devant est ce que vous savez comment faire ?

                                    Merci encore
                                    0
                                    1. Bonsoir mon ami, je suis très heureux pour toi.
                                      Portez vous bien et bonne continuité.
                                      0
                                      1. Bonjour j'espère que vous allez bien, je suis toujours là pour vous apporter mon aide, quel est votre soucis cette fois ci?
                                        vous pouvez me contacter sur mon e-mail si vous voulez:
                                        mprog67@yahoo.fr
                                        0
                                        • 1
                                        • 2