You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pyodbc向MS Access表写入新行时出现INSERT INTO语法错误

错误原因

你遇到的INSERT语句语法报错,核心原因是Group是Access数据库的保留关键字,直接作为字段名写在SQL语句中会被数据库识别为语法指令,无法正常解析为表字段。

修复方案

修改Write()函数中的INSERT语句,将保留字Group用方括号包裹,修改后的代码如下:

def Write():
    if GlobalVars.PM == False:
        GlobalVars.DueTime = GlobalVars.DueTime + " AM" #在时间字符串末尾拼接AM
    else:
        GlobalVars.DueTime = GlobalVars.DueTime + " PM" #在时间字符串末尾拼接PM
    # 仅需把SQL语句中的Group替换为[Group]即可解决报错
    sql = "INSERT INTO ToDo ([Group], TaskName, TaskDesc, DueDate, DueTime) VALUES (?, ?, ?, ?, ?)"
    val = (GlobalVars.Group, GlobalVars.TaskName, GlobalVars.TaskDesc, GlobalVars.DueDate, GlobalVars.DueTime)
    cursor.execute(sql, val)
    cursor.commit()

其他注意事项

你当前未测试的Update()函数也存在两处语法问题,后续开发时可以一并修正:

  • 同样需要把Group字段用方括号包裹
  • UPDATE语法格式错误,正确格式应为UPDATE 表名 SET 字段1=值1, 字段2=值2 WHERE 条件,你当前的SET子句没有写赋值逻辑,后续开发时需要补全对应赋值语句。

内容的提问来源于stack exchange,提问作者BaseballIphone69

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:42:03