Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2010, 08h48   #1
Membre régulier
 
Inscription : avril 2005
Messages : 251
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 251
Points : 86
Points : 86
Par défaut PB ouverture formulaire sur critere

bonjour le forum

J' ai un formulaire, dessus un bouton avec qui je fais apple a un autre forulaire
ayant pour critere le champ Matricule pour la saisie de donne pour un utilisateur Ce deuxieme formulaire est base sur une autre table.
J' ai deux pb, le premier c'est qu' il m' ouvre le formulaire avec des enregistrments pour le Matricule selectionne et je voudrais qu' il l' ouvre en mode Ajout de donnée
2) Si je le laisse avec l' affichage des donnée pour l' utilisateur, en passant en mode ajout, je perd l' utilisateur selectionné
Voici mon code
Code :
DoCmd.OpenForm "frmRecap", , , "[Matricule]=" & Me.Matricule
Merci d' avance pour votre aide
Aladin
Aladin_23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 09h49   #2
Membre émérite
 
Avatar de azertix
 
Homme Lanza Bertucci-Domergue
Développeur informatique
Inscription : juin 2007
Messages : 937
Détails du profil
Informations personnelles :
Nom : Homme Lanza Bertucci-Domergue
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juin 2007
Messages : 937
Points : 995
Points : 995
Bonjour.
Est-ce que tu pourrais être plus précis dans la description de ton formulaire, de tes contrôles et de leur fonctionnement ou mettre une/des impression(s) d'écran ?

Merci
__________________
Si ma réponse vous a été utile pensez à voter Pour

Avant de poster sur le forum Access :
FAQ > SOURCES > COURS > FORUM > GOOGLE
Pas de question par MP ou je mords

azertix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 10h07   #3
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Bonjour,

Passe par une variable globale :
- Avant l'ouverture du formulaire en mode ajout, tu alimentes cette variable.
- Tu ouvres le formulaire en mode ajout.
- Sur l'évènement Open, tu alimentes le champ qui va bien avec la variable globale.
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 10h29   #4
Membre régulier
 
Inscription : avril 2005
Messages : 251
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 251
Points : 86
Points : 86
Bonjour Kloun, azertix et le forum
Merci d' avoir répondu
Avec ce code qui appelle le formulaire frmRecap
Code :
DoCmd.OpenForm "frmRecap", , , "[Matricule]=" & Me.Matricule
Il s' ouvre avec les infos pour le Matricule séléctionné c' est ok
Si l' on veut ajouté des enregistrement à partir du formulaire frmRecap on perd le matricule.
Peux t on modifier le code afin qu' il s' ouvre en mode ajout pour le matricule séléctionné ?
Ou l' ouvrir avec le code ci dessous mais en passant en mode ajout ne pas perdre le matricule séléctionné
Aladin
Aladin_23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 10h35   #5
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Ma solution ne fonctionne pas ?
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 11h54   #6
Membre régulier
 
Inscription : avril 2005
Messages : 251
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 251
Points : 86
Points : 86
Bonjour Kloun et le forum
J' ai bien vu ta solution, je ne l' ai pas encore executé et cela me prendra des jours car je suis un novice en vba. peux tu me donner un exemple. Merci
Aladin
Aladin_23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 12h03   #7
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Dans un module, déclarer une variable globale du même type que ton Matricule. Au vu de ton code :
Code :
Public gLng_Matricule as Long
Dans ton formulaire, sur le Clic du bouton :
Code :
1
2
gLng_Matricule = nz(Matricule.value, -1)
DoCmd.OpenForm "frmRecap", , , ,acFormAdd
Sur l'évènement Open de frmRecap
Code :
1
2
3
if gLng_Matricule  <> -1 then
    Matricule.value = gLng_Matricule
end if
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 14h33   #8
Membre régulier
 
Inscription : avril 2005
Messages : 251
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 251
Points : 86
Points : 86
Rebonjour Kloun
Merci pour le code
J' ai testé le code que tu m' a donné et j' ai une erreur d' execution du type
impossible d' attribuer une valeur à cet objet sur ce code
Code :
1
2
3
If gLng_Matricule <> -1 Then
    Matricule.Value = gLng_Matricule
End If
Aladin
Aladin_23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 15h03   #9
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Sur le formulaire frmRecap, tu as un champ texte Matricule ?
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 17h25   #10
Membre régulier
 
Inscription : avril 2005
Messages : 251
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 251
Points : 86
Points : 86
Bonsoir kloun et le forum

Nom le champ est de type numérique, le champ matricule est commun aux deux tables. sur lequel s' appuie les deux formulaires
Aladin
Aladin_23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 10h07   #11
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Je me suis mal exprimé.
Est-ce que tu as un contrôle "Zone de texte" qui s'appelle Matricule sur le formulaire frmRecap ?
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 10h58   #12
Membre régulier
 
Inscription : avril 2005
Messages : 251
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 251
Points : 86
Points : 86
Bonjour kloun et le forum
Effectivement j' ai une zone de texte qui s' appelle Matricule sur le formulaire recap, acr le matricule séléctionner sur le premier formulaire doit etre reporté pour etre renseigner dans la table du formulaire recap
Aladin
Aladin_23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 11h32   #13
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Le problème est bien sur le
Code :
Matricule.value = gLng_Matricule
?

Tu pourrais mettre une copie d'écran du message d'erreur ?

La source de données de frmRecap, c'est une table ?
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 12h10   #14
Membre régulier
 
Inscription : avril 2005
Messages : 251
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 251
Points : 86
Points : 86
Rebonjour kloun

la source de donnée du formulaire recap est une table et le bp vien bien
Code :
Matricule.value = gLng_Matricule
L' erreur est la suivante
erreur d' execution 2448
Impossible d' attribuer une valeur a cet objet
Aladin
Aladin_23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 14h07   #15
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Je vois pas trop, là ...
Ton contrôle Matricule a-t-il une ControlSource ?
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 14h13   #16
Membre régulier
 
Inscription : avril 2005
Messages : 251
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 251
Points : 86
Points : 86
Rebonjour Kloun
Effectivement il a aussi un controle source Matricule qui relie les deuxtables
Ce controle matricule est creé dans la meme table, ce qui amenerait a garder dans la variable le matricule d' ouverture et l' inserer dans la deuxieme table lors de l' ajout de nouveaux enregistrements pour ce controle
Aladin
Aladin_23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 14h32   #17
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Fait sauter le ControlSource et refait un test.
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 17h16   #18
Membre chevronné
 
Homme Alexandre Sahli
Comptable
Inscription : mars 2005
Messages : 507
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Sahli
Localisation : Suisse

Informations professionnelles :
Activité : Comptable

Informations forums :
Inscription : mars 2005
Messages : 507
Points : 628
Points : 628
Bonjour,

En lisant le début je pense que le plus simple serait de passer le matricule en openarg, Puis lors de l'ouverture du formulaire en mode ajout de mettre défaut value sur le champ désiré.

Dans le code du bouton:

Code :
DoCmd.OpenForm "monformulaire",,,,acFormEdit,, Me.Matricule
Dans le formulaire appelé:

Code :
1
2
3
Private Sub Form_Load()
 
 me.monchamp.DefaultValue = me.openargs
le formulaire doit s'ouvrir en mode ajout avec le champ rempli par défaut avec le bon matricule
Alexandre Sahli est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/11/2010, 18h47   #19
Membre régulier
 
Inscription : avril 2005
Messages : 251
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 251
Points : 86
Points : 86
Bonsoir Alexandre, Kloun et le forum
Kloun je n' ai pas eu l' occasion de faire le test de ton dernier post, j' ai fais le test preconisé par Alexandre
Alexandre j' ai modifie le code
Code :
DoCmd.OpenForm "monformulaire",,,,acFormEdit,, Me.Matricule
par
Code :
DoCmd.OpenForm "monformulaire",,,,acFormAdd,, Me.Matricule
Tout fonctionne correctement
Merci à vous deux pour le temps que vous avez passé à m' aider à m' en sortir
Aladin
Aladin_23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h37.


 
 
 
 
Partenaires

Hébergement Web