Bienvenue! Identification Créer un nouveau profil

Recherche avancée

copier valeur du champ d'un sous fomulaire NON lié vers un nouvel enregistrement d'un sous formulaire lié

15/08/14 17:02
boujours les As d'access,

j'ai un formulaire principal "lot" (id_lot - poids_du_lot_a_constituer) avec 2 sous formulaires.

le 1er "stock" (id_entree - produit - date - fournisseur - poids) formulaire continu, non lié au formulaire principal, est issu d'une requete qui me donne toutes les entrees en stock des produits. rien n'est regroupe ce sont juste la liste de toute les entrées.

le 2eme "detail_lot" (id_lot - id_detail - id_entree - quantite) formulaire continu est lié au formulaire principal par "id_lot". ce sous formulaire me sert a constitué les lots en fonction de ce que j'ai en stock pour atteindre le poids_du_lot_a_constituer du formulaire principal

voila pour le contexte, j'espere avoir été clair... winking smiley

mon objectif :
pouvoir creer une procedure evenementielle sur double clic dans le champ "id_entree" du sous formulaire "stock" qui transfererait la valeur de ce champ dans le champ "id_entree" du sous formulaire "detail_lot" ( pour ne pas avoir a tous les recopier)

mon idee :
Langage: Visual Basic
  1. Private Sub id_entree_DblClick(Cancel As Integer)
  2. 'recuperer la valeur du champ
  3. Dim TempValue As String
  4. TempValue = Me!id_entree
  5. 'remonter le focus sur le formulaire principal
  6. forms!lot.setFocus
  7. 'redescendre focus sur le sous formulaire de destination dans un nouvel enregistrement et dans le bon champ
  8. Forms!lot!detail_lot.SetFocus
  9. DoCmd.GoToRecord , , acNewRec
  10. detail_lot!ref.SetFocus
  11. 'coller la valeur dans le champ de destination
  12. detail_marc!ref = TempValue
  13. End Sub

cela ne fonctionne pas

mon test :
j'ai créé un champ "test" dans le formulaire "lot" ou j'ai appliqué le meme code en y retirant la partie 'remonter le focus sur le formulaire principal qui n'est plus necessaire
j'ai donc ce code
Langage: Visual Basic
  1. Private Sub test_DblClick(Cancel As Integer)
  2. 'recuperer la valeur du champ
  3. Dim TempValue As String
  4. TempValue = Me!test
  5. 'redescendre focus sur le sous formulaire de destination dans un nouvel enregistrement et dans le bon champ
  6. Forms!lot!detail_lot.SetFocus
  7. DoCmd.GoToRecord , , acNewRec
  8. detail_lot!ref.SetFocus
  9. 'coller la valeur dans le champ de destination
  10. detail_marc!ref = TempValue
  11. End Sub

et là, cela fonctionne

Mon probleme vient donc de donner le focus au formulaire principal.
Je pense que cela vient du fait que le formulaire "stock" n'est pas lié au formulaire principal et qu'access ne doit pas savoir sur quel enregistrement se placer

Je suis tres loin de m'y connaitre en vba, j'apprends juste en essayant de comprendre vos bouts de code et en les adaptant à mes problemes.

quelqu'un aurait il une idée?

en resumé mon besoin est en double cliquant sur le champ forms!stock.Form!stock!id_entree
la valeur de se champ aille se mettre dans un nouvel enregistrement dans le champ forms!stock.Form!detail_lot!id_entree

Merci par avance
SujetAuteurEnvoyé le

copier valeur du champ d'un sous fomulaire NON lié vers un nouvel enregistrement d'un sous formulaire lié

titou15/08/14 17:02

Re: copier valeur du champ d'un sous fomulaire NON lié vers un nouvel enregistrement d'un sous formulaire lié

Hervé Inisan19/08/14 19:06

Re: copier valeur du champ d'un sous fomulaire NON lié vers un nouvel enregistrement d'un sous formulaire lié

titou19/08/14 22:02

Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter