2010-08-26 19 views
1

J'ai un formulaire appelé Transaction Entry. J'ai un sous-formulaire appelé lots. Je souhaite être en mesure d'entrer une date dans le formulaire Saisie de transaction, puis d'entrer plusieurs éléments dans le sous-formulaire, mais de toujours mettre à jour la date à partir du formulaire Saisie de transaction.Formulaire utilisé pour l'entrée de données par lots

Fondamentalement, ce serait ce que je les ai appris ci-dessous, et mettra à jour automatiquement la date du parent du au champ de date de la sous-formulaire pour chaque enregistrement.! [Alt texte] [1]

+0

Voulez-vous que l'utilisateur puisse modifier une date dans le sous-formulaire? – JeffO

+0

Non, et je ne suis pas bon en ce qui concerne le code. J'ai une image de la capture d'écran si cela aide. – Nic

+0

Votre formulaire d'entrée de transaction a-t-il une source d'enregistrement/remplit-il une table? – JeffO

Répondre

1

La chose la plus facile vous pouvez le faire (si vous connaissez le sous-formulaire ne sera jamais utilisé nulle part ailleurs) est d'ajouter un événement « BeforeInsert » puis faites référence à la forme mère

Private Sub Form_BeforeInsert(Cancel As Integer) 
    Me.myDate = Forms!parentformname.commonDate 
End Sub 

vous pouvez également faire référence au parent sans mentionner le nom du formulaire

Private Sub Form_BeforeInsert(Cancel As Integer) 
    Me.myDate = Me.Parent.commonDate 
End Sub 
+1

Vous n'avez besoin d'aucun code. – Fionnuala

3

Aucun code ne devrait être nécessaire. Il est possible d'utiliser les propriétés Lier l'enfant & Link Master Fields du contrôle de sous-formulaire (remarque: le contrôle de sous-formulaire, pas le formulaire contenu) à cet effet. Vous pouvez consulter le nom d'un contrôle, pas de champ juste des noms dans les propriétés du lien:

Link Master Fields : SomeID, NameOfDateControl 

Link Child Fields : SomeID, NameOfDateField 

champs enfants sont avec le contenu des champs maître.

+0

Ooooohhhh bonne astuce +1. – BIBD

+0

Toute expression peut être utilisée pour Link Master ou Link Child. Par exemple, le moyen le plus simple de lier un formulaire continu de détail et un formulaire de détail unique est d'avoir le lien du sous-formulaire de détail comme PK de l'enregistrement en cours du sous-formulaire de liste (par exemple, DetailForm.Form! PKFieldName). C'est l'une des gloires des sous-formulaires Access, et il semble que beaucoup de gens qui apparaissent avec des problèmes sur SO ne comprennent même pas les structures de base/sous-formulaire maître/enfant qui fonctionnent pour les tables maître/enfant (par ex. détail de la facture). –