PythonでMS ACCESSのテーブルを修正したいと考えています。
下記コードでは、IDが「1」のレコードのNAMEを"TARO"に修正しようとしています。
ACCESSのテーブル側では、IDはオートナンバー型(フィールドサイズ:長整数型)です。
下記のコードを実行すると、sqlを実行した行で『pyodbc.DataError: ('22018', '[22018] [Microsoft][ODBC Microsoft Access Driver] 抽出条件でデータ型が一致しません。 (-3030) (SQLExecDirectW)')』というエラーが出てしまいます。
テーブルのIDのデータ型とsqlのWHERE句で指定しているIDのデータ型が違うということでしょうか?
両方ともint型だと思うのですが。ご教授いただければ幸いです。
python
1import pyodbc 2 3conn_str = ( 4 r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; ' + 5 r'DBQ=C:\Users\user\Desktop\spdb.accdb;' 6) 7conn = pyodbc.connect(conn_str) 8cursor = conn.cursor() 9 10Name = "TARO" 11ID = 1 12 13sql = f"UPDATE T_list SET Name='{Name}' WHERE ID='{ID}'" 14cursor.execute(sql) 15cursor.commit() 16 17cursor.close() 18conn.close()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/09 07:48