Ouvrir formulaire sur enreg spécifique access

Kril1 -  
mprog67 Messages postés 51 Statut Membre -
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
  • 2
  1. Kril1
     
    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
  2. mprog67 Messages postés 51 Statut Membre 2
     
    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
  3. kril1
     
    S'il vous plaît personne ne peut m'aider ?
    0
  4. moiced59 Messages postés 1161 Statut Membre 60
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kril1
     
    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
  7. moiced59 Messages postés 1161 Statut Membre 60
     
    essai ca :

    Private Sub Commande85_Click()
    DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] ="Me.Code groupe
    End Sub
    0
  8. moiced59 Messages postés 1161 Statut Membre 60
     
    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
  9. kril1
     
    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
  10. moiced59 Messages postés 1161 Statut Membre 60
     
    excuse moi

    Private Sub Commande85_Click()
    DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] =" & Me.[Code groupe]
    End Sub
    0
  11. kril1
     
    J'ai le même message d'erreur avec ce nouveau code.
    0
  12. moiced59 Messages postés 1161 Statut Membre 60
     
    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
  13. kril1
     
    Et bien je dois être maudit ça ne fonctionne toujours pas.
    0
  14. moiced59 Messages postés 1161 Statut Membre 60
     
    lol

    ton code groupe c bien du numerique?
    0
  15. kril1
     
    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
  16. mprog67 Messages postés 51 Statut Membre 2
     
    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
  17. mprog67 Messages postés 51 Statut Membre 2
     
    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
  18. Kril1
     
    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
  19. mprog67 Messages postés 51 Statut Membre 2
     
    Bonsoir mon ami, je suis très heureux pour toi.
    Portez vous bien et bonne continuité.
    0
  20. mprog67 Messages postés 51 Statut Membre 2
     
    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