2010-12-09 55 views
2

En relation avec this question, comment puis-je détecter qu'un utilisateur de formulaire ajoute un enregistrement? Ce serait idéal si je le savais dès que le "dossier courant" du formulaire devenait "nouveau" (naviguer au-delà du dernier enregistrement existant, ou cliquer sur le "nouveau" bouton de navigation), mais savoir dès que la première donnée commence être entré serait presque aussi bon. Je devine que ce serait tester quelque chose dans Form_Current(), mais quoi (ou y a-t-il un meilleur moyen)? En outre, quel est le plus tôt que je peux trouver l'ID (Autonumber) pour le nouvel enregistrement? Cela nécessite une sauvegarde, n'est-ce pas? Est-il automatiquement rempli dans le jeu d'enregistrements du formulaire? (Je sais que c'est pas le cas pour les sauvegardes à code .AddNew ... .Update.) La raison pour laquelle je demande ceci est de commencer à remplir la table enfant derrière le sous-formulaire (les données sont telles que je peux créer automatiquement un "par défaut" "ensemble de données que l'utilisateur peut confirmer ou modifier).Détecter un nouvel enregistrement et obtenir un ID à l'aide d'Access VBA

Répondre

3

Je pense que vous voulez:

Private Sub Form_Current() 
    If Me.NewRecord Then 

End Sub 

Le autonumber ne doit pas être utilisé avec une table enfant jusqu'à ce que l'enregistrement a été enregistré, ou vous (devrait) avoir des problèmes d'intégrité. Lorsque le sous-formulaire obtient le focus, le numéro automatique de la table principale aura été sauvegardé. N'oubliez pas que vous pouvez faire beaucoup avec l'enfant de lien, les champs de maître de lien sur un sous-formulaire.

+0

Parfait. Je ne sais pas pourquoi je ne trouvais pas ça dans les docs .... – RolandTumble