suite prob insertion de donnée auto dans sous formulaire ac97
12 réponses
valeriepepoz
Bonjour
je fais suite à une de mes questions d'hier. j'aimerai renseigner automatiquement dans un sous-formulaire une info contenue dans openargs du formulaire principal.(parent.openargs
hier, Raymond m'a suggéré de coder :
Forms("monform")("monsousforms").Form.SetFocus --> ca ne marche pas en access 97(j'avais oublié de préciser que je travaille en 97 !) e
DoCmd.GoToRecord , , acNewRec --> ca marche
j'ai donc codé : dans le formulaire principale à Form_Current()
Me![nom de mon sous-formulaire].SetFocu
et inséré le code docmd.goto à réception focus de mon sous-formulaire mais rien ne se passe
le code réception focus ne s'exécute pas . J'ai essayé plusieurs évènement sans succès
j'aimerai savoir ou mettre exactement le code pour insérer mon info en fin d'enregistrement déjà existant dans mon sous-formulaire car aujourd'hui je n'arrive qu'à pratiquement écraser l'info sur le 1er enregistrement de mon sous-formulaire
Merci d'avance de vos aide
cordialemen
valéri
En pas à pas, je ne peux voir grand chose car access plante sur l'instruction docmd?goto... Impossible d'atteindre l'enregistrement etc ....
Par contre, j'arrive très bien à insérer ma donnée lorsque mon formulaire est appelé en entré de données :
If Me.DataEntry Then Me![BudgetsClients sous-formulaire].SetFocus Me![BudgetsClients sous-formulaire].Form![EOTP].SetFocus Me![BudgetsClients sous-formulaire].Form![EOTP] = Me.OpenArgs Me!NewClient.Enabled = False Me!ModifClient.Enabled = False toute la partie supérieure fonctionne Else Me![BudgetsClients sous-formulaire].SetFocus DoCmd.GoToRecord , , acNewRec Me![BudgetsClients sous-formulaire].Form![EOTP].SetFocus Me![BudgetsClients sous-formulaire].Form![EOTP] = Me.OpenArgs
End If
Alors là... je ne comprends plus ton raisonnement, désolé...
Le formulaire principal en entrée de donnée, et tu vas dans le sous formulaire ? Normalement, on rempli d'abord le form-principal avant tout.
Es tu sûre que tes relations sont créer et fonctionnent correctement ? J'ai la sensation que tu n'utilise pas le système et que tu essaies de faire "à la main"
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Salut,
"valeriepepoz"
En pas à pas, je ne peux voir grand chose car access plante sur l'instruction docmd?goto...
Impossible d'atteindre l'enregistrement etc ....
Par contre, j'arrive très bien à insérer ma donnée lorsque mon formulaire est appelé en entré de
données :
If Me.DataEntry Then
Me![BudgetsClients sous-formulaire].SetFocus
Me![BudgetsClients sous-formulaire].Form![EOTP].SetFocus
Me![BudgetsClients sous-formulaire].Form![EOTP] = Me.OpenArgs
Me!NewClient.Enabled = False
Me!ModifClient.Enabled = False
toute la partie supérieure fonctionne
Else
Me![BudgetsClients sous-formulaire].SetFocus
DoCmd.GoToRecord , , acNewRec
Me![BudgetsClients sous-formulaire].Form![EOTP].SetFocus
Me![BudgetsClients sous-formulaire].Form![EOTP] = Me.OpenArgs
End If
Alors là... je ne comprends plus ton raisonnement, désolé...
Le formulaire principal en entrée de donnée, et tu vas dans le sous formulaire ?
Normalement, on rempli d'abord le form-principal avant tout.
Es tu sûre que tes relations sont créer et fonctionnent correctement ?
J'ai la sensation que tu n'utilise pas le système et que tu essaies de faire "à la main"
--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
En pas à pas, je ne peux voir grand chose car access plante sur l'instruction docmd?goto... Impossible d'atteindre l'enregistrement etc ....
Par contre, j'arrive très bien à insérer ma donnée lorsque mon formulaire est appelé en entré de données :
If Me.DataEntry Then Me![BudgetsClients sous-formulaire].SetFocus Me![BudgetsClients sous-formulaire].Form![EOTP].SetFocus Me![BudgetsClients sous-formulaire].Form![EOTP] = Me.OpenArgs Me!NewClient.Enabled = False Me!ModifClient.Enabled = False toute la partie supérieure fonctionne Else Me![BudgetsClients sous-formulaire].SetFocus DoCmd.GoToRecord , , acNewRec Me![BudgetsClients sous-formulaire].Form![EOTP].SetFocus Me![BudgetsClients sous-formulaire].Form![EOTP] = Me.OpenArgs
End If
Alors là... je ne comprends plus ton raisonnement, désolé...
Le formulaire principal en entrée de donnée, et tu vas dans le sous formulaire ? Normalement, on rempli d'abord le form-principal avant tout.
Es tu sûre que tes relations sont créer et fonctionnent correctement ? J'ai la sensation que tu n'utilise pas le système et que tu essaies de faire "à la main"
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
valeriepepoz
je pense que j'ai mal exprimé ma demarche et mon problème :
J'ai un premier formulaire qui me permets entre autre de renseigner une donnée( appelons la "nombudget" ) et appelle un formulaire de sélection dans une liste déroulante d'un numéro de client.
Une fois le client sélectionné, ce formulaire par un docmd.openform appelle un formulaire client ou les infos du client concerné sont affichées. Ce formualaire client contient un sous-formulaire en mode feuille de donnée avec dedans des infos sur des lignes budgets se rapportant au client du formulaire principal. Mon besoin : à l'ouverture du formulaire client , j'aimerai que ma donnée Nombudget figure automatiquement dans la zone concernée sur un nouvel enregistrement de mon sous-formulaire 'lignebudget'de facon a ce que l'utilisateur n'ait pas besoin de le saisir une seconde fois. Mon code : Appel du 1er formulaire de saisie de la nouvelle donnée budget : DoCmd.OpenForm stDocName1, acNormal, , , acFormEdit, acDialog, NewData Dans stdocname1, après sélection du numéro de client, j'ai : DoCmd.OpenForm "frmclients", , , "[N°client]=" & Me! FindClient, , acDialog, Me.OpenArgs
C'est dans ce formulaire frmclients que j'ai l'erreur 2499 et que je ne peux faire mon docmd.gotorecord :
Private Sub Form_Current()
'met a jour la liste modifiable findclient Me!FindClient = Me![N°Client] Me.N°Service = Me.FindClient 'empêcher modif If Not IsNull(Me![N°Client]) Then 'modif vp220404 ligne en commentaire pour acces aux combos ' Me.AllowEdits = False
If IsNull(Me.OpenArgs) Then Me![BudgetsClients sous- formulaire].Form.AllowEdits = true Me![BudgetsClients sous- formulaire1].Form.AllowEdits = true Else -----Je passe dans ce bout de code dans me.openargs , j'ai mon nombudget et budgetsclients sous-formulaire est le nom du sous-formulaire dans lequel je souhaiterai faire une insertion -------------------------
' renseignement du nom de la ligne à créer dans le sous-formulaire budget Me![BudgetsClients sous- formulaire].SetFocus
DoCmd.GoToRecord , , acNewRec Me![BudgetsClients sous-formulaire].Form! [EOTP].SetFocus Me![BudgetsClients sous-formulaire].Form! [EOTP] = Me.OpenArgs Me!NewClient.Enabled = False Me!ModifClient.Enabled = False End If Quand access passe sur le gotorecord , j'ai le message d'erreur 2499 décrit dans mes mails précédents.
J'espère que cela va nous aider, je désespère de trouver la solution.
merci d'avance de ton aide. valérie
End Sub
-----Message d'origine----- Salut,
"valeriepepoz"
En pas à pas, je ne peux voir grand chose car access plante sur l'instruction docmd?goto...
J'ai la sensation que tu n'utilise pas le système et que tu essaies de faire "à la main"
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
.
je pense que j'ai mal exprimé ma demarche et mon problème :
J'ai un premier formulaire qui me permets entre autre de
renseigner une donnée( appelons la "nombudget" ) et
appelle un formulaire de sélection dans une liste
déroulante d'un numéro de client.
Une fois le client sélectionné, ce formulaire par un
docmd.openform appelle un formulaire client ou les infos
du client concerné sont affichées.
Ce formualaire client contient un sous-formulaire en mode
feuille de donnée avec dedans des infos sur des lignes
budgets se rapportant au client du formulaire principal.
Mon besoin : à l'ouverture du formulaire client ,
j'aimerai que ma donnée Nombudget figure automatiquement
dans la zone concernée sur un nouvel enregistrement de mon
sous-formulaire 'lignebudget'de facon a ce que
l'utilisateur n'ait pas besoin de le saisir une seconde
fois.
Mon code :
Appel du 1er formulaire de saisie de la nouvelle donnée
budget :
DoCmd.OpenForm stDocName1, acNormal, , ,
acFormEdit, acDialog, NewData
Dans stdocname1, après sélection du numéro de client,
j'ai :
DoCmd.OpenForm "frmclients", , , "[N°client]=" & Me!
FindClient, , acDialog, Me.OpenArgs
C'est dans ce formulaire frmclients que j'ai l'erreur 2499
et que je ne peux faire mon docmd.gotorecord :
Private Sub Form_Current()
'met a jour la liste modifiable findclient
Me!FindClient = Me![N°Client]
Me.N°Service = Me.FindClient
'empêcher modif
If Not IsNull(Me![N°Client]) Then
'modif vp220404 ligne en commentaire pour acces aux combos
' Me.AllowEdits = False
If IsNull(Me.OpenArgs) Then
Me![BudgetsClients sous-
formulaire].Form.AllowEdits = true
Me![BudgetsClients sous-
formulaire1].Form.AllowEdits = true
Else
-----Je passe dans ce bout de code dans me.openargs , j'ai
mon nombudget et budgetsclients sous-formulaire est le nom
du sous-formulaire dans lequel je souhaiterai faire une
insertion -------------------------
' renseignement du nom de la ligne à créer
dans le sous-formulaire budget
Me![BudgetsClients sous-
formulaire].SetFocus
DoCmd.GoToRecord , , acNewRec
Me![BudgetsClients sous-formulaire].Form!
[EOTP].SetFocus
Me![BudgetsClients sous-formulaire].Form!
[EOTP] = Me.OpenArgs
Me!NewClient.Enabled = False
Me!ModifClient.Enabled = False
End If
Quand access passe sur le gotorecord , j'ai le
message d'erreur 2499 décrit dans mes mails précédents.
J'espère que cela va nous aider, je désespère de trouver
la solution.
merci d'avance de ton aide.
valérie
End Sub
-----Message d'origine-----
Salut,
"valeriepepoz"
En pas à pas, je ne peux voir grand chose car access
plante sur l'instruction docmd?goto...
je pense que j'ai mal exprimé ma demarche et mon problème :
J'ai un premier formulaire qui me permets entre autre de renseigner une donnée( appelons la "nombudget" ) et appelle un formulaire de sélection dans une liste déroulante d'un numéro de client.
Une fois le client sélectionné, ce formulaire par un docmd.openform appelle un formulaire client ou les infos du client concerné sont affichées. Ce formualaire client contient un sous-formulaire en mode feuille de donnée avec dedans des infos sur des lignes budgets se rapportant au client du formulaire principal. Mon besoin : à l'ouverture du formulaire client , j'aimerai que ma donnée Nombudget figure automatiquement dans la zone concernée sur un nouvel enregistrement de mon sous-formulaire 'lignebudget'de facon a ce que l'utilisateur n'ait pas besoin de le saisir une seconde fois. Mon code : Appel du 1er formulaire de saisie de la nouvelle donnée budget : DoCmd.OpenForm stDocName1, acNormal, , , acFormEdit, acDialog, NewData Dans stdocname1, après sélection du numéro de client, j'ai : DoCmd.OpenForm "frmclients", , , "[N°client]=" & Me! FindClient, , acDialog, Me.OpenArgs
C'est dans ce formulaire frmclients que j'ai l'erreur 2499 et que je ne peux faire mon docmd.gotorecord :
Private Sub Form_Current()
'met a jour la liste modifiable findclient Me!FindClient = Me![N°Client] Me.N°Service = Me.FindClient 'empêcher modif If Not IsNull(Me![N°Client]) Then 'modif vp220404 ligne en commentaire pour acces aux combos ' Me.AllowEdits = False
If IsNull(Me.OpenArgs) Then Me![BudgetsClients sous- formulaire].Form.AllowEdits = true Me![BudgetsClients sous- formulaire1].Form.AllowEdits = true Else -----Je passe dans ce bout de code dans me.openargs , j'ai mon nombudget et budgetsclients sous-formulaire est le nom du sous-formulaire dans lequel je souhaiterai faire une insertion -------------------------
' renseignement du nom de la ligne à créer dans le sous-formulaire budget Me![BudgetsClients sous- formulaire].SetFocus
DoCmd.GoToRecord , , acNewRec Me![BudgetsClients sous-formulaire].Form! [EOTP].SetFocus Me![BudgetsClients sous-formulaire].Form! [EOTP] = Me.OpenArgs Me!NewClient.Enabled = False Me!ModifClient.Enabled = False End If Quand access passe sur le gotorecord , j'ai le message d'erreur 2499 décrit dans mes mails précédents.
J'espère que cela va nous aider, je désespère de trouver la solution.
merci d'avance de ton aide. valérie
End Sub
-----Message d'origine----- Salut,
"valeriepepoz"
En pas à pas, je ne peux voir grand chose car access plante sur l'instruction docmd?goto...