0

フォームのエラーチェックを入力しようとしています。ユーザーに名前を入力してもらい、すでにレコードにある名前を使用しようとしている場合は、ユーザーに通知するプロンプトを表示したいと思います。

例:Personテーブルには、FNameがJeff、Kyle、Darrenの3つのレコードがあります。

Fname Box Kyleのaddpersonフォームに入力された場合、after updateイベントは、この名前が要求されたことをユーザーに通知し、フィールドをnullにします。グレッグが入力されたかのように、通知は発生しません。

テキストフィールドの値をフィルタリングされたクエリリストの値と比較する方法がわかりません。Google検索には、他のゆるやかに関連するリンクがあります。

助けてくれてありがとう!

4

1 に答える 1

2

すべてのfnameが一意である必要がある場合は、テーブルに一意のインデックスを追加します。これにより、重複が入力されるのを防ぎます。フォームエラープロパティを使用すると、カスタムエラーを提供できます。

コントロールの更新前イベントに名前が存在するかどうかを確認することもできます。

この例では、コントロールとフィールドの両方がATextと呼ばれています。通常、コントロールの名前を変更して、フィールドと同じにならないようにする必要があります。

Private Sub AText_BeforeUpdate(Cancel As Integer)
Dim IsOk As Boolean

''One of the very few places where the .Text property is used
sLookUp = Me.AText.Text

IsOk = IsNull(DLookup("Atext", "Table1", "Atext='" & sLookUp & "'"))

If Not IsOk Then
    MsgBox "Found!"
    Cancel = True
End If
End Sub
于 2012-07-05T20:55:49.407 に答える