SQL文をコピーしてDoCmd.RunSQL""やstrSQL""の""の中に貼り付けて見ましたが、エラーになってしまいます。普通の方はAccessでSQLを学習しようとする場合、データベースウィンドウのクエリでSQLで記述をして学んでいかれると思います。そのほうが記述に誤りがあるかどうかがすぐにわかり、どの個所が間違っているのかもある程度把握できるからです。自分の場合はVBAから学習してしたので当然SQLもVBEで直接記述してきました。果てしなくエラーに遭遇し何日も悩んだこともありました。VBAでSQLを記述し、もしエラーがあった場合レコードセットのオープン時、あるいはアクションクエリの実行時に処理が中止され、SQL文の誤りの個所を指摘してくれません。いった意味でクエリのSQLビューで学習されることをお奨めします。しても、直接VBEに記述したいのであればそれ相当の覚悟と根気が必要です。VBEに記述するSQL文はテキスト型として扱います。そのSQL文中に変数をかませたり、SQL文中にテキスト値を記述する場合は複雑なことになりがちです。スペース1つ入れ忘れても簡単にエラーになっちゃいます。自分がよくやるエラーの例です。"定数";"クエリのSQLビューでの記述は問題なく結果セットが返されます。これをVBAで例のように記述するとエラーになります。(1)のアスタリスク(*)のあとにスペースがない。(3)の定数はシングルクォーテーション(')で囲まなければならない。'定数';"が正解となります。回答ありがとうございます。コンパイルでエラーは無くなったのですが、実行してもデータが更新されません。(Delete処理実施)やはりしっかりSQLを学ばないと難しそうです。ご丁寧にありがとうございました。回答ありがとうございます。コンパイルでエラーは無くなったのですが、実行してもデータが更新されません。SQLを学ばないと難しそうです。ご丁寧にありがとうございました。コンパイルがとおるってことは、例えば、DELETE句とFROM句の間にスペースがないとかなどの単純なものかもしれません。Debug.PrintでイミディエイトウィンドウにSQL文を出力させるなどしてみるとわかるかも知れません。DELETEする対象レコードがないとかかな?よろしければ、VBEに記述したSQL文をそのままアップすればわかるかも知れません。連絡が遅くなりましたが、回答ありがとうございます。コンパイルがとおるってことは、例えば、DELETE句とFROM句の間にスペースがないとかなどの単純なものかもしれません。Debug.PrintでイミディエイトウィンドウにSQL文を出力させるなどしてみるとわかるかも知れません。上記チェックしましたが問題はありません。よろしければ、VBEに記述したSQL文をそのままアップすればわかるかも知れません。対象データは確かにあります。下記に構文を記しますので宜しくお願いします。Functionあれっ、上記SQLをテストデータ作ってやってみましたが該当レコードは削除されますよ。考えられるのは、テーブルのデータ型ですかね。JANコードフィールドはテキスト型ですよね。あとは、上記Functionプロシージャでいろいろ問題点が。1.データ削除()関数は呼出されてもなにも起きませんよ2.strsqlは変数ですが、宣言部で宣言されていますか?PublicなFunctionだからあまりおすすめはできないですけど3.SQL文自体は単なるテキストですから、DoCmdオブジェクトやADO、DAOで実行しないと処理はされませんよ。Functionが記述してあったのであえてコメントさせていただきました。回答ありがとうございます。Function上記の構文で動作しました。スキル不足でお手数お掛けしました。ありがとうございました。運営していますPLESKインストール済みの専用・共有レンタルサーバーを提供しています。10年以上の信頼性は抜群です。