- ベストアンサー
AccessVBA 実行時エラー'2766'の原因と対処方法について
- AccessVBA 実行時エラー'2766'が発生し、オートメーションオブジェクト'レコードセット'が含まれていないことが原因と考えられます。エラーはフォームで複数の条件で検索した際に発生し、SQL文に問題がある可能性があります。テキストボックスやコンボボックスの入力をチェックしてWHERE文を結合する際に、エラーが発生しています。
- エラーの原因はSQL文の構築方法にあります。特に、テキストボックスやコンボボックスの選択肢によってWHERE文が変動し、AND文が30個以上結合されることが問題です。このため、適切な制約や条件を設定することが必要です。
- 対処方法としては、WHERE文の結合を簡素化することが重要です。例えば、余分な条件を除外したり、複数の条件を1つの述語で表現できるように工夫することが有効です。また、クエリのパフォーマンスを向上させるために、インデックスを適切に作成することも重要です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
連結し生成しているので、空白区切りが要るのにない、シングルコーテーションが片方しかない、こういう観点でSQLが正しいかから探るというのはやりましたか。
その他の回答 (3)
- piroin654
- ベストアンサー率75% (692/917)
>ワイルドカードの&はOLE DB Provider for Jet すみません。ワイルドカードがなぜか & になっていました。 % です。
お礼
アドバイスありがとうございます。 皆様のご意見でいろいろ探った結果、 SQL分のWHERE条件のAND文に文字数制限がある様でした。 具体的に何文字かは、定かではありませんが、 合計30個あるAND文の文字数を減らす度に、検索できる数が増えていきました。 現在は、テーブルの列名を短くして、検索できる数をどんどん増やしています。 具体的に何文字なんでしょうね(~_~;) 重ねてアドバイスありがとうございました。 m(_ _)m
- piroin654
- ベストアンサー率75% (692/917)
回答が不十分だったので。 ワイルドカードの&はOLE DB Provider for Jet を使っている場合ですが、この場合はどうなの でしょう。 フルパスについてはSQL内の他の部分についても 同様です。
- piroin654
- ベストアンサー率75% (692/917)
>LIKE '%" & ![txtFindProductName] & "%'" Forms!なんとか![txtFindProductName] のようにフルパスでは? また、 ワイルドカードは * では?
お礼
アドバイスありがとうございます。 皆様のご意見でいろいろ探った結果、 SQL分のWHERE条件のAND文に文字数制限がある様でした。 具体的に何文字かは、定かではありませんが、 合計30個あるAND文の文字数を減らす度に、検索できる数が増えていきました。 現在は、テーブルの列名を短くして、検索できる数をどんどん増やしています。 具体的に何文字なんでしょうね(~_~;) 重ねてアドバイスありがとうございました。 m(_ _)m
お礼
アドバイスありがとうございます。 皆様のご意見でいろいろ探った結果、 SQL分のWHERE条件のAND文に文字数制限がある様でした。 具体的に何文字かは、定かではありませんが、 合計30個あるAND文の文字数を減らす度に、検索できる数が増えていきました。 現在は、テーブルの列名を短くして、検索できる数をどんどん増やしています。 具体的に何文字なんでしょうね(~_~;) 重ねてアドバイスありがとうございました。 m(_ _)m