Microsoft Access 掲示板

SQLのWHEREのMe.filterが出来てない? / 5

13 コメント
views
5

「完成年」フィールドは日付型の完成日がT_製造履歴にあり、それを使ってYear([完成日付])をそのクエリに組み込んでます。

[T_製造履歴]テーブルには[完成年]フィールドはないということですよね。
ならば、[完成年]はパラメータとして判断されますので、
”実行エラー3061 パラメータが少なすぎます。1を指定して下さい”
というエラーになります。

SQLの[T_製造履歴]の部分をフォームのレコードソースのクエリに変更するか、
下記のようにサブクエリにして[完成年]、[完成月]の演算フィールドを追加すればいいでしょう。

strSQL = _
    "UPDATE " & _
    "(SELECT *, Year(完成日) As 完成年, Month(完成日) As 完成月 FROM [T_製造履歴]) " & _
    "SET [check] = -1 " & _
    "WHERE (" & Me.filter & ");"
通報 ...