Ouvrir formulaire sur enreg spécifique access

Fermé
Kril1 - 23 avril 2010 à 14:37
mprog67 Messages postés 28 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 14 mai 2012 - 29 avril 2010 à 06:53
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

A voir également:

21 réponses

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
mprog67 Messages postés 28 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 14 mai 2012 2
27 avril 2010 à 07:24
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
S'il vous plaît personne ne peut m'aider ?
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 avril 2010 à 13:27
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 avril 2010 à 19:26
essai ca :

Private Sub Commande85_Click()
DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] ="Me.Code groupe
End Sub
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 avril 2010 à 19:32
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
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
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 avril 2010 à 20:25
excuse moi

Private Sub Commande85_Click()
DoCmd.OpenForm "Licences diverses groupe", acNormal, , "[Code groupe] =" & Me.[Code groupe]
End Sub
0
J'ai le même message d'erreur avec ce nouveau code.
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 avril 2010 à 22:20
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
Et bien je dois être maudit ça ne fonctionne toujours pas.
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
25 avril 2010 à 18:05
lol

ton code groupe c bien du numerique?
0
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
mprog67 Messages postés 28 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 14 mai 2012 2
26 avril 2010 à 07:19
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
mprog67 Messages postés 28 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 14 mai 2012 2
26 avril 2010 à 07:28
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
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
mprog67 Messages postés 28 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 14 mai 2012 2
27 avril 2010 à 18:52
Bonsoir mon ami, je suis très heureux pour toi.
Portez vous bien et bonne continuité.
0
J'ai un autre soucis maintenant, j'ai créé un nouveau sujet si vous avez des idées je vous invite à m'aider de nouveau.

https://forums.commentcamarche.net/forum/affich-17544452-copier-coller-d-une-cellule-avec-macro-access

Merci encore
0
mprog67 Messages postés 28 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 14 mai 2012 2
29 avril 2010 à 06:53
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