質問: CStr(DLookup("connectionString", "接続文字列テーブル", "ID= 2")) //Access自身の"接続文字テーブル"に、SQLserverの接続文字列を格納し、取得しています。 //このロジックで接続文字列は問題なく変数に代入されています。 cn.Open strConnectionString rs1.Open "顧客マスタ", cn, adOpenForwardOnly, adLockReadOnly //リンクテーブル rs2.Open "Q売上", cn, adOpenForwardOnly, adLockReadOnly //リンクテーブルで作ったクエリ rs3.Open "Q売上明細", cn, adOpenForwardOnly, adLockReadOnly //Accessクエリ //上記の3行、レコードセット.Openのところがデバックでカーソルのあたる箇所 '-- いろんな処理 ``` **・エラー箇所は一番下の3行、レコードセット.Openのところで、 ・[実行時エラー'2147217900(80040e14)': ストアドプロシージャ’テーブル名(またはクエリ名)’が見つかりませんでした。]** と、エラーメッセージが出ました。 また、接続文字列に誤りはありません。 コーディングの仕方に問題があるのかと思い、ここで相談させていただきました。 有職者の皆様方、どうかご教示のほどをよろしくお願いいたします。
回答: すみません、上の所だと改行できないのでこちらで再確認させていただきます。 質問内容を読み取ると、構成としては、 **** 顧客マスタ **** 顧客マスタ(SQLServerへのリンクテーブル) Q売上(Access Q売上明細 こんな感じでしょうか。 だとすると、 rs2.Open "Q売上", cn, adOpenForwardOnly, adLockReadOnly //リンクテーブルで作ったクエリ rs3.Open "Q売上明細", cn, adOpenForwardOnly, adLockReadOnly //Accessクエリ この2つはできませんよね。 SQLServer上には存在しませんから。 顧客マスタに関してはSQLServerに「顧客マスタ」としてテーブルが存在し、接続文字列がきちんとSQLServerを指しているのなら問題ないように思えますが。