よろしくお願いいたします。
Accessのフォーム上のボタンイベントで、SQLserverよりテーブルデータを取得するイベントプロシージャを書いています。
取得しようとしているテーブルデータ**「Q_m_kokyaku_shohin」は、実際にはクエリです。**
ODBCでSQLserverより接続したリンクテーブルを、二つ使用して作っています。
しかし、実行時エラーが起きてしまい、下記コードの
Rs.Open strSQL, Cn, adOpenForwardOnly, adLockReadOnly
に黄色のカーソルがフォーカスされます。
エラー内容は、
「実行時エラー'2147217865(80040e37);
オブジェクト名'Q_m_kokyaku_shohin'が無効です。」
でした。
デバック→ステップインでコードを追っていった所、接続文字列は問題無く変数に代入されています。
その上で、原因及び修正方法を調べても解決にいたりません。
有職者の皆様にお知恵をいただきたく存じます。
Private Sub クエリ取得_Click() Dim Cn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim strSQL As String Dim strConnectionString As String 'SQLServer接続文字列 strConnectionString = CStr(DLookup("connectionString", "接続文字列テーブル", "ID= 2")) //Access自身のテーブルに、接続文字列を入れて、その値を変数に代入しています strSQL = "SELECT * FROM Q_m_kokyaku_shohin" strSQL = strSQL & " WHERE Q_m_kokyaku_shohin.顧客番号 like '*%'" Cn.ConnectionString = strConnectionString Cn.Open Rs.Open strSQL, Cn, adOpenForwardOnly, adLockReadOnly //エラーのデバッグポイントはここ Set Me.Recordset = Rs Rs.Close Cn.Close Set Rs = Nothing Set Cn = Nothing End Sub
また、このクエリをの全データの中から、任意の一文字の前方一致検索に対応するデータを
取得したいです。
初めの一文字はユーザーが入力する任意の値を想定している為、「*」を使用しています。
*から始まる任意の値です。
この記述の仕方は合っているのでしょうか…。
ネットで調べると、「初めがAの前方一致検索」など、特定のを使う方法しか出てこないもので…。
細かい部分の記述の仕方がわからず困っています。
併せてお答え頂ければ幸甚です。

回答4件
あなたの回答
tips
プレビュー