質問: sql文 & "," & 年月 & ")" on error goto レコード挿入_err docmd.setwarnings false docmd.runsql sql文, -1 docmd.setwarnings true レコード挿入_exit: exit function レコード挿入_err: msgbox error$ resume レコード挿入_exit end function
回答: > sql文 = sql文 & """" & 利用者 & """," & 日付 & "," & 身体単位 & "," & 生活単位 & "," & 開始時刻 ここは、 「sql文 = sql文 & "利用者,日付,身体単位,生活単位,開始時刻"」 でよいはずです。 「利用者」等が文字列型なのに対し、「日付」は日付型だということで 「ダブルクォーテーション(")では括らない」と思われたのだと思いますが、 これだと「日付」コントロールの値が参照されるため、ご質問のようなエラーに なったものと思います。 (ご質問中の形だと、「~values (利用者,11:00:00,~」といった形のsql文に なってしまいます) 試しに、sql実行前に「msgbox sql文」という命令を入れておけば、sql文が正しく 作成されているかどうか確認できます。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ また、改行の方法としては、ご質問中のように分割するほかに、 「sql文 = "insert into 介護メモ (利用者,介護日,身体単位,生活単位,開始時刻,年月)" _ & " values (利用者 , 日付 , 身体単位 , 生活単位 , 開始時刻,年月)"」 というように、「_」(アンダーバー)を使って改行を挿入する方法もありますので、 参考までに。 (文字列とアンダーバーの間には、「 」(スペース)が必要) なお、改行挿入時には、元の文にあったスペースを入れ忘れがちですが(私が(汗))、 以下のような手順を踏むと、間違いにくくなるかと思います; 「"~年月) values ~"」(分割前のsql文) →「"~年月)"" values ~"」(この時点ではエラー発生) →「"~年月)" & " values ~"」(sql文の分割終了) →「"~年月)" _& " values ~"」(この時点ではエラー発生) →「"~年月)" _ & " values ~"」(改行の挿入終了) *改行後の「&」の前には、スペースやtabが任意の数だけ 入れられますので、見やすいように調整できます。