Access VBAでフォームのテキストボックスの値を変数に格納する方法

Microsoft Access

Access VBAで、フォームに配置されたテキストボックスの値を変数に格納したい場合、正しい記述方法が必要です。特に、`Me`キーワードやフォームからの値の取得方法については初心者がつまずきやすい部分です。この記事では、質問者が直面していたエラー「Meの使い方が違う」といった問題を解決するための正しいコード例と解説を行います。

1. Meキーワードの使い方

Access VBAで`Me`は現在アクティブなフォームまたはレポートを参照するために使用されます。そのため、`Me!テキスト日付`はフォームのテキストボックス「テキスト日付」を参照する正しい書き方です。

`Me!テキスト日付`のように、`Me`を使ってフォームのコントロールにアクセスすることができます。しかし、エラーが発生する場合、フォームの参照方法や他のフォームからのデータ取得方法を見直す必要があります。

2. フォームから別のフォームの値を取得する方法

フォーム1のテキストボックス「テキスト日付」の値を変数に格納したい場合、フォーム1の「テキスト日付」コントロールの値を以下のように取得できます。

Dim i As Variant

' フォーム1のテキスト日付の値をiに格納
 i = Forms!フォーム1!テキスト日付.Value

このコードで、フォーム1のテキストボックス「テキスト日付」の値を変数iに格納できます。

3. Me!テキスト日付とForms!フォーム1!テキスト日付の違い

`Me!テキスト日付`は現在アクティブなフォームでのみ動作しますが、`Forms!フォーム1!テキスト日付`は、別のフォームからでもそのフォームのコントロールの値を参照するために使用します。

もし、フォーム1以外のフォームからフォーム1の「テキスト日付」の値を参照したい場合は、`Forms!フォーム1!テキスト日付.Value`を使用します。

4. エラーの原因と修正方法

質問者が直面している「Meの使い方が違う」といったエラーは、主にフォームを参照する方法が誤っていることが原因です。例えば、`Me`が適切に使われていない場合や、参照先のフォームが異なる場合にこのエラーが発生します。

フォームを正しく参照するためには、現在アクティブなフォームのコントロールを参照する場合は`Me!コントロール名`、他のフォームから参照する場合は`Forms!フォーム名!コントロール名`を使用します。

まとめ

Access VBAでフォームのテキストボックスの値を変数に格納するには、`Me`を使って現在アクティブなフォームを参照する方法と、他のフォームから値を取得するための`Forms!フォーム名!コントロール名`を使い分けることが重要です。これらを正しく使用することで、エラーを解決し、スムーズにプログラミングが進められます。

コメント

タイトルとURLをコピーしました