アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセス2003でメインフォームにデータシートビューのサブフォームを作成しています。
そのサブフォームのフィールドにイベントで検索用の別のフォームを開くようにしています。
検索用フォームからサブフォームへマクロで値を代入するように
しているのですが、サブフォームが見つからないというエラーが表示されます。
どこに問題があるのでしょうか?
(ちなみにサブフォームだけ開いて検索フォームを開き値を代入するとうまく行きます。メインフォームからだとエラーになります。)
どうぞよろしくお願いします。

A 回答 (3件)

単独で動いていたフォームをサブフォームとして組み込んだ時によく起きるものです。




メインのフォーム名を「M1」
メインフォームに配置したサブフォームコントロール名を「FSUB」
サブフォームにしたフォーム名を「S1」

と仮定します。

メインフォームに配置したサブフォームコントロール「FSUB」のプロパティ
「ソースオブジェクト」は、「S1」になっているとします。

また、サブフォームに配置したテキストボックス名を「S1txt」と仮定します。



テキストボックス「S1txt」へ値を代入する時には、

1)サブフォームにした「S1」を単独で起動している時、

アクション: 値の代入
アイテム: [Forms]![S1]![S1txt]
式: 2000

で代入できます。

2)メインフォームを起動している時には、

アクション: 値の代入
アイテム: [Forms]![M1]![FSUB]![S1txt]
式: 2000

で代入できます。


つまり、サブフォーム化した際には、メインフォームから辿った記述にする必要があります。

サブフォームの組み込み方によっては、メインに配置したサブフォームコントロール名が
サブフォーム名と一致する場合があります。
(この時にはサブフォームコントロール名「S1」ソースオブジェクト「S1」)

この状態であれば、

アクション: 値の代入
アイテム: [Forms]![M1]![S1]![S1txt]
式: 2000

で値を代入することができます。

つまり
[Forms]![メインフォーム名]![サブフォームコントロール名]![サブフォームのテキストボックス名]
の参照になります。

正確には、最後の[サブフォームのテキストボックス名]は、
サブフォームコントロールに設定したソースオブジェクト内のテキスト名
になります。

この回答への補足

回答ありがとうございます。
やってみたのですが今度は
「オブジェクトを参照するときエラーが発生しました。
実行しようとしたvbモジュールでオブジェクトのプロパティまたはメソッドの参照
が正しくありません。」と表示されます。
あとどこが違うのでしょうか?
初歩的なことかも知れませんがよろしくお願いします。

補足日時:2009/11/20 21:52
    • good
    • 0

#2です



> 「オブジェクトを参照するときエラーが発生しました。
> 実行しようとしたvbモジュールでオブジェクトのプロパティまたはメソッドの参照
> が正しくありません。」と表示されます。

では、私には何も分かりません。(直接操作できていないので)


以下の手順で確認してください。

・メインフォームをデザインビューで開き、プロパティを表示させます。
・メインフォーム名を控えます。 ※A
(プロパティにはありません。データベースウィンドウに表示されている名前です)
・サブフォーム部分を1回クリックします。
・サブフォームコントロール名を控えます。 ※B
・サブフォーム内の値を代入したいテキストボックスをクリックし、名前を控えます。 ※C

この時、
[Forms]![※A]![※B]![※C] でアクセスできます。

マクロ内の記述が、上記であるか確認します。

まだ、エラーが出るようであれば、
※A、※B、※Bの時のソースオブジェクト名、※C と
マクロの記述内容を提示してください。

また、単独起動でうまくいっている時のマクロの記述内容も合わせ提示ください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
うまくいきました。
コントロール名が間違っていました。
アドバイス本当に助かりました。

お礼日時:2009/11/20 23:44

もう少し具体的に書かないと良くわからない気がするのですが…



サブフォームの指定が間違っているだけではないのでしょうか。

この回答への補足

すいません。説明不足で。
メインフォームA(顧客登録 単票形式)
サブフォームB(顧客取引履歴)
サブフォームBのレコードを入力する際にフィールドにイベントで検索用のフォームCを開くマクロを設定しています。
フォームCの値をサブフォームBのレコードに代入するマクロをイベントに設定して
いるのですが、サブフォームBが見つからないというエラーになります。
どこの指定をみれば良いでしょうか?

補足日時:2009/11/19 22:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A