アプリ版:「スタンプのみでお礼する」機能のリリースについて

Access2000(初心者)
フォームで Between(指定日~指定日)の中でLike(チェック)を含まないレコードを検索削除したいです。
下記コードの場合
実行時エラー'3061':
パラメータが少なすぎます。1を指定してください。
のエラーが出てしまいます。
どこを直せば良いでしょうか?宜しくお願いします。

CurrentDb.Execute "DELETE * FROM テーブル名 WHERE ([テーブル名].[日付] Between #2009/01/01# And #2009/02/02#) AND ((([テーブル名].[チェックボックス]) Like 'No')); "

A 回答 (1件)

tab1:



ID_日付_______チェックボックス
_1_2009/01/01_No
_2_2009/02/02_Yes
_3_2009/03/03_No

[イミディエイト ウインドウ]
? CnnExecute("DELETE * FROM tab1 WHERE 日付 Between #2009/01/01# And #2009/02/02# AND [チェックボックス]=False")
True

tab1:

ID_日付_______チェックボックス
_2_2009/02/02_Yes
_3_2009/03/03_Noo

と、成功!

? CnnExecute("DELETE FROM tab1 WHERE ([tab1].[日付] Between #2009/01/01# And #2009/02/02#) AND ((([tab1].[チェックボックス]) Like 'Yes'));")
True

tab1:

ID_日付_______チェックボックス
_2_2009/02/02_Yes
_3_2009/03/03_Noo

と、失敗。

? CnnExecute("DELETE FROM tab1 WHERE ([tab1].[日付] Between #2009/01/01# And #2009/02/02#) AND ((([tab1].[チェックボックス]) = True));")
True

tab1:

ID_日付_______チェックボックス
_3_2009/03/03_Noo

で、成功。

と、チェックボックスをLike文でテストするのはミスです。
が、質問のエラーはテーブル名と列名が間違っていなければ出ないと思います。
まずは、実際のコードを示されたらどうでしょう。

まさか、[テーブル名]としているんではないでしょうから・・・。
    • good
    • 0
この回答へのお礼

>まさか、[テーブル名]としているんではないでしょうから・・・。
実際は[メインT]で恥ずかしながら過去に[テーブル名]にしたこともありました・・。

確かに実際のコードの方が間違いを把握しやすいですね^^;
次回からは実際のコードで質問します。
>チェックボックスをLike文でテストするのはミスです。
問題解決できました。有り難う御座います。

お礼日時:2009/04/02 13:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!