教えて! goo のコンテンツに対する取り組みについて

Win7 ACCESS2013を使用しております

フォームのレコードソースを変更したいのですが、次のようなVBAコードではデバックになります。
Form_foフォーム名.RecordSource="quクエリ名"
同じフォームの中に数ヶ所記述していますが、すべて同じ結果です
記述の誤りがあるのでしょうか?
よろしくお願いします

質問者からの補足コメント

  • 早速のご回答有難うございました。
    エラーメッセージは実行時エラー424 ”オブジェクトが必要です”と表示されます。

      補足日時:2016/09/30 21:07
  • 返信が遅くて申し訳ありません
    ご指導いただいたサイトを参照して、モジュールにoption Explicitを入力して、その後
    Forms!フォーム名.RecordSource="クエリ名"
    Forms![フォーム名].RecordSource="クエリ名"
    Forms(”フォーム名”).RecordSource="クエリ名"
    と修正しました。結果、エラーメッセージは表示されなくなりましたが、やはりデバッグになります。
    フォームやクエリを見直してみたいと思いますが、そのときの注意点などありましたら教えてください。
    よろしくお願いします

      補足日時:2016/10/03 11:17
gooドクター

A 回答 (3件)

なかなか再現するのが難しいエラーですね。



> Form_foフォーム名.RecordSource="quクエリ名"

「foフォーム名」 がナビゲーションウィンドウに表示されているフォーム名ということでしょうか。

フォームのレコードソースを変更する VBA
 Forms!フォーム名.RecordSource = "quクエリ名"
 Forms("フォーム名").RecordSource = "quクエリ名"
自分自身のフォームなら
 Me.RecordSource = "quクエリ名"
自分のフォームのサブフォームなら
 Me.サブフォーム.Form.RecordSource = "quクエリ名"
などのように書けます。

No1 さんのリンク先のもあるように
「.」の前は Form オブジェクトです。
いろいろな書き方がありますが。

こちらなど参考になると思います。
http://makoto-watanabe.main.jp/access/acobjForm. …
本家はこちら。
Form オブジェクト (Access)
https://msdn.microsoft.com/ja-jp/library/office/ …


で、ご質問の
Form_foフォーム名 というのは
Form オブジェクトではありません。
「現在開かれているフォーム」とは別物なので。

どこでこの書き方をお知りになったかわかりませんが、
こんな風に書けるよ的なものが多く
実際の性質などを解説しているサイトはあまり見かけませんね。

Form_foフォーム名 というオブジェクトは VBE の プロジェクトウィンドウの
「Microsofr Access クラス オブジェクト」に属しているはずのものです。

「はずのもの」というのは
フォームを作成しても、そのままでは プロジェクトウィンドウに表示されません。
VBA のコードを書いて(フォームの「コード保持」プロパティを「はい」にして)
はじめてできあがるものです。

ということで、
質問者さんの フォーム には VBA のコードが含まれていない、
すなわち「Form_foフォーム名」というものが存在しない、
かつ、レコードソースを変更する記述のあるモジュールに
「Option Explicit」 が書かれていない、
(書かれていればコンパイルエラーになって、原因がすぐわかったはず)

という条件がかさなり、件の実行時エラーになったということだと思います。

    • good
    • 0
この回答へのお礼

ありがとうございました。
コードの書き方を検討してみます

お礼日時:2016/10/05 10:07

で、エラーメッセージは?

    • good
    • 0

フォームのレコードソースの値を変更するなら


Forms!フォーム.RecordSource = "quクエリ名"

https://support.office.com/ja-jp/article/-Record …
    • good
    • 0
この回答へのお礼

ありがとうございました
VBAに関するサイトをご紹介いただき、今後活用させていただきます

お礼日時:2016/10/05 10:08

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

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

gooドクター

関連するカテゴリからQ&Aを探す


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

人気Q&Aランキング