Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 出现数字符号()时MS Access SELECT语句出错_Python_Ms Access_Odbc_Pypyodbc - Fatal编程技术网

Python 出现数字符号()时MS Access SELECT语句出错

Python 出现数字符号()时MS Access SELECT语句出错,python,ms-access,odbc,pypyodbc,Python,Ms Access,Odbc,Pypyodbc,运行此最小代码时: import pypyodbc conn = pypyodbc.connect(r'Driver={{Microsoft Access Driver (*.mdb, *.accdb)}}; Dbq=C:\temp\example.accdb;' cur = conn.cursor() cur.execute('SELECT [Pass#] FROM [Companies]') 我得到以下错误: PYODBC.DatabaseError:'07002','[07002][

运行此最小代码时:

import pypyodbc

conn = pypyodbc.connect(r'Driver={{Microsoft Access Driver (*.mdb, *.accdb)}}; Dbq=C:\temp\example.accdb;'
cur = conn.cursor()

cur.execute('SELECT [Pass#] FROM [Companies]')
我得到以下错误:

PYODBC.DatabaseError:'07002','[07002][Microsoft][ODBC Microsoft Access驱动程序]参数太少。期望1。”

错误的原因似乎是字符,这是MS Access的一个特殊通配符。然而,我想不出任何办法来逃避它。类似的错误表明方括号[]是逃避的方法,但它似乎不起作用

我尝试过这些变化,但没有成功:

当前执行“从[公司]中选择[通过[]”

当前执行“从[公司]中选择通行证[]”

当前执行“从[公司]中选择[通过\\\]

当前执行“从[公司]选择通行证”


我还应该提到Access DB不是由我或我的公司控制的,因此我无法重命名该列。

感谢Gord Thompson为我指明了正确的方向。长话短说,我使用的模式很旧,字段[Pass]已重命名为[PassID]


然而,事实证明,对于我的数据库中的其他字段来说,这种行为仍然令人困惑。对于将来找到此答案的任何人来说,以这种方式调用的Access ODBC驱动程序似乎给出的错误参数太少。预期为N。当您有错误的列名,而不是一个不被识别或类似的更有用的列名时。列名中允许使用字符,只要名称是方括号。

cur.execute'SELECT[Pass\]FROM[companys]'我也尝试过这种变化。没有骰子。@June7是正确的。您无法执行select查询。cur.executeSELECT[Pass]FROM[companys]是正确的-它对我有效。仔细检查列名以确保其完全匹配,例如,如果字段名实际上是[Pass],则[Pass]将不起作用。