質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

13179閲覧

Access vba ADO接続 ODBCリンクテーブルのデータを取得したい 

nekomura

総合スコア132

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2016/05/06 02:38

よろしくお願いいたします。

①Accessのフォームを
・フォームヘッダー
・詳細
・フォームフッター
に分けて、ヘッダーの部分に「クエリ取得」というボタンを配置しています。

②また、SQLserverからODBC接続で、Accessにリンクテーブルを二つ作り、
それらを合わせたものを「Q_uriage」という名としたクエリを作っています。

①、②と併せて実現したいことは、
●ボタンをクリック→クエリの内容(つまり、リンクテーブルの内容)を取得
●一覧でフォームフッターに表示
です。

ADO接続についてや、SQLserverの接続など色々と調べて、一旦書いてみたロジックは下記です。
//'[SQLステートメントが正しくありません。'DELETE','INSERT','PROCEDURE','SELECT',または'UPDATE'を使用してください。]'
というエラーが出てうまくいきません。

Private Sub クエリ取得_Click() Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Set Cn = CurrentProject.Connection Set Rs = New ADODB.Recordset Rs.Open "Q_uriage", Cn, adOpenStatic, adLockOptimistic ※2 '//Q_uriageは、ODBC接続でSQLserverから取得した二つのリンクテーブルを合わせて作ったクエリ' ●ボタン押下後、実行時エラー この行が、デバック後黄色くなる Rs.Close Cn.Close Set Rs = Nothing Set Cn = Nothing End Sub ※ //上記のソースで取得できるはずのクエリの内容を、フォームフッターに一覧表示させたい

足らないところが多々あるのは承知ですが、有職者の皆様のお知恵をお借りしたく存じます。
表題の内容を実現できるやり方をご教示いただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

そもそもQ_uriageというクエリはAccessから開けますか?
あとはQ_uriageというクエリにコントロールの値を参照するような条件指定していたりするとADOで動かなかったりします
条件指定のパラメータを指定する際は5つ目の引数で指定します
その時はエラーメッセージが違ったと思うので、今回のケースには当てはまらないかもしれませんが

投稿2016/05/06 03:51

編集2016/05/06 03:54
dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekomura

2016/05/06 04:05

dojikko様 いつもお世話になっております。 >そもそもQ_uriageというクエリはAccessから開けますか? デザインビューでは開けますが、データシートビューで開こうとすると、 「式が一致しません」 とエラーが出ます…。コーディング以前に、ここから問題があるということなのでしょうか? また、大変お手数をおかけして申し訳ないのですが、 >Q_uriageというクエリにコントロールの値を参照するような条件指定していたりすると の部分もよくわかりません。 今いちど、ご教示をいただければ幸甚です。
dojikko

2016/05/06 04:10

どのようなクエリになっているかわかりませんが > データシートビューで開こうとすると、「式が一致しません」とエラーが出ます はよろしくないかもしれませんね そもそもデータシートビューで開くときにエラーになるクエリは、ADO経由で開くときにもエラーになる可能性が大です どんなクエリになっているか差支えのない範囲で貼ってみては?
nekomura

2016/05/06 04:22

dojikko様 そうなんですね。 まだAccessの機能自体に慣れていないところもあり、親切にお応え頂きありがたいです。 クエリのSQLビューは下記です。 重ね重ねで申し訳ありませんが、もし何かお気づきのことがあればご教示いただけないでしょうか。 ```SELECT dbo_t_uriage.伝票番号, dbo_t_uriage.顧客番号, dbo_t_uriage.納品日, dbo_m_kokyaku.顧客番号, dbo_m_kokyaku.顧客名, dbo_m_kokyaku.住所, dbo_m_kokyaku.[ビル名], dbo_m_kokyaku.郵便番号, dbo_m_kokyaku.電話番号, dbo_m_kokyaku.FAX番号 FROM dbo_t_uriage LEFT JOIN dbo_m_kokyaku ON dbo_t_uriage.顧客番号 = dbo_m_kokyaku.顧客番号; ```
nekomura

2016/05/06 07:42

dojikko様 クエリが開けないという場合を知らなかったので、とても勉強になりました。 クエリを作り直してエラーは出なくなったので、同内容ですが違う問題点が出てきたので 新たに質問をあげました。 今後ともどうぞよろしくお願いいたします。
guest

0

こちらを参考にしてみてください。
[【02 - トピックス】: VBAでODBC接続]
http://www.sk-access.com/mailmaga/vol213.html

投稿2016/05/06 03:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nekomura

2016/05/06 07:43

skuromaku様 このサイトはしりませんでした。 とても勉強になったのでブックマークしました。 ありがとうございます、今後ともご教示のほどいただければ幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問