0

T必須itemのテキスト フィールドとuserID、現在のユーザーのログイン ID を入力するためのテキスト フィールドを含むテーブルがあります。このテーブルに基づくサブフォームをmainForm含むフォームがあります。TForm各レコードにユーザーの ID があることを確認するために、次のイベントを に追加しましたTForm

Sub form_current()
 Me.userID = Environ("username")
End Sub

を開くmainFormと、開くとすぐに次のエラー メッセージが表示されます。

You must enter a value in the 'T.item' field.

ここで起こっていることは、このform_current()イベントにより、まだ空白のときに新しいレコードの入力を完了しようとしたと Access に認識させることでT.itemあり、これは必須フィールドであるため、テーブルの制約に違反していると思います。不思議なことに、これは を開いたときにのみ発生しますmainForm。単独で開くと、開いたときにTFormこのエラーメッセージが表示されません。

各フィールドにユーザーのログイン ID を入力するために別のイベントを使用する必要がありますか? または、これを使用するより良い方法はありform_current()ますか?

4

1 に答える 1

1

最初の方法。

モジュールで関数を作成します。

Public Function getUserName() As String
    getUserName = Environ("Username")
End Function

次に、TForm のプロパティ ウィンドウを開き、「userId」フィールドを選択し、プロパティ ウィンドウで「データ」タブを選択し、「デフォルト値」のある行を見つけて、次の式を入力します: =getUserName()。

理由はわかりませんが、アクセスに Environ() 関数が表示されません。

第二の方法。

次のように OnLoad イベントを実装します。

Private Sub Form_Load()
    Me.userID.DefaultValue = "=""" & Environ("username") & """"
End Sub
于 2013-07-05T17:50:47.910 に答える