前提・実現したいこと
ODBCデータソースにMySQLのDBを登録し、Access2010にて、リンクテーブルで管理しているMySQL側のテーブル(仮にAとします)と、
別のAccessDBからのリンクテーブル(仮にBとします)を管理しています。
Bには1ヶ月間の出勤時刻データが格納されていて、毎日更新されます。
AはBの累積データが格納されています。
月初めにBからAに1ヶ月分のデータレコードを用意し、以後は毎日レコード更新という形で
Aのデータが更新されるように考えています。
テーブル構成は下記のとおりです。(項目省略しています)
A
年月日:日付/時刻型(主キー)
社員No:数値型(主キー)
勤務区分:テキスト型
出勤時刻:時刻型
退勤時刻:時刻型
…
B
年月日:日付/時刻型(主キー)
社員No:数値型(主キー)
勤務区分:テキスト型
出勤時刻:テキスト型
退勤時刻:テキスト型
※10:59訂正しました。B側の時刻データはテキスト型となっておりました。
発生している問題・エラーメッセージ
次のSQL文を実行してデータ更新を行っていますが、勤務区分をはじめ、他の数値・テキスト項目は
更新されているのですが、時刻の項目だけが更新されません。
SQL
1UPDATE A INNER JOIN B ON A.年月日=B.年月日 and A.社員No=B.社員No 2SET A.出勤時刻=B.出勤時刻,A.退勤時刻=B.退勤時刻,A.勤務区分=B.勤務区分
何か原因として考えられるものがあればご教示下さい。
※10:59訂正により、テキスト型データを時刻型フィールドには代入できない?
試したこと
ODBCの設定より、「Return matched rows instead of affected rows」にチェックを入れています。(これが無いと、更新時にレコードのロック違反というエラーメッセージが表示され、勤務区分すらも更新されなかった。)
補足情報(FW/ツールのバージョンなど)
MySQL ODBC 8.0 Unicode Driver 8.00.12.00
Access2010 SP2
よろしくお願いいたします。
※17:23 画像削除させていただきました。

回答2件
あなたの回答
tips
プレビュー