0

アクセス データベースに対する oledb クエリのコマンド ラインに少し問題があります。アクセスとコードの両方で、さまざまな構文を試しました。データベースへの接続は問題ありません。da を入力しようとしたとき、またはアクセスでクエリとして実行したときにエラーが発生します。

SELECT * FROM MyTable WHERE MyColumn = 'This Text String';

アクセスでこれを実行すると、データ型の不一致が発生します。二重引用符は同じ結果になります。テキスト文字列を次のように角かっこで囲んでみましたが、スペースが原因だと思いました。

SELECT * FROM MyTable WHERE MyColumn = [This Text String];

Access では、「パラメーター値を入力してください」というプロンプトが表示され、パラメーターが「このテキスト文字列」としてリストされます。

Like 演算子も使用してみました。

SELECT * FROM MyTable WHERE MyColumn LIKE 'This Text String';

一重引用符でも二重引用符でも、これはエラーを生成しませんが、結果も生成しません。構文エラーが発生する CONTAINS を試しました。

この時点で、他に何を試すべきかわかりません。私が達成しようとしていることは次のとおりです。

「MyColumn」のテキストが「This Text String」と等しい「MyTable」のすべての行を返します

誰かが私を助けることができますか?私は何かを見落としているように感じます。おそらく明らかです。


編集:ああ...これが問題かどうかはわかりませんが、おそらく役立つでしょう。

基づいてフィルタリングしようとしている列 (MyColumn) は、アクセス中の単なるテキストではなく、実際には別のテーブルの列のルックアップであることに気付きました。

データ型が実際にはテキストではなく、数値であるため (リストであるため)、おそらくそれが問題です。わかりました...どうすればそれを克服できますか?

4

1 に答える 1

1

ルックアップテーブルに参加する必要があります

SELECT * FROM MyTable INNER JOIN Lookup l on MyColumn = l.key and l.value =  'This Text String';
于 2013-03-19T02:07:06.727 に答える