J'essaie d'empêcher les références circulaires (ou même en cascade) dans mes données, et il semble que cela ne fonctionne que partiellement."Aucun enregistrement en cours" après Annuler dans combo_BeforeUpdate
Dans Access 2007, j'ai le tableau suivant:
create table mfr (
mfr_id Autonumber,
mfr_nm Text(255),
mfr_is_alias_for_id Long Integer
)
J'importer un tas de données à partir d'Excel, et l'mfr_nm est l'une des colonnes de la feuille de calcul. Je ne peux pas contrôler comment les données sont saisies dans Excel, donc je veux un moyen de capturer des orthographes alternatives comme étant «vraiment» la même chose. Jusqu'ici, tout va bien (je pense ...).
Maintenant, j'ai construit un formulaire hors de cette table. J'ai un ComboBox pour l'alias - encore une fois, si loin, si bon. Cependant, quand j'ajouter ce code à l'événement BeforeUpdate, les choses deviennent « intéressantes » (gestion des erreurs omise):
If Not IsNull(cboMfrAlias) Then
If Not IsNull(DLookup("mfr_is_alias_for_id", "mfr", "mfr_id=" & cboMfrAlias)) Then
MsgBox """Alias for"" must not also be an alias.", vbExclamation
Cancel = True
End If
End If
Cela fonctionne exactement comme je l'attends quand la forme est dans la vue de forme, mais si je m dans Datasheet View my MsgBox est immédiatement suivi d'une erreur «No current record» générée par Access et non détectée par la gestion des erreurs dans le sous-élément BeforeUpdate.
Puis-je attraper cette erreur? Où?
Je pense que vous devez avoir quelque chose d'autre aussi, parce que ceci travaille pour moi sur un formulaire de test. – Fionnuala