Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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 我有错误';尝试使用闭合连接;_Python_Ms Access_Tkinter_Pypyodbc - Fatal编程技术网

Python 我有错误';尝试使用闭合连接;

Python 我有错误';尝试使用闭合连接;,python,ms-access,tkinter,pypyodbc,Python,Ms Access,Tkinter,Pypyodbc,我的代码有一些问题。因此,我想通过在表单中写入数据来向ACCES添加数据。(我不太擅长编程) 另外,如果我将此代码(如下)更改为a='*任意数*'b='*任意数*',程序将工作 a = Entry (form, width=20, font="Arial 16") a.pack () b = Entry (form, width=20, font="Arial 16") b.pack () 如果要在调用Add之前关闭连接,请将close调用移到代码底部。对于.close()语句,一般的最佳做法

我的代码有一些问题。因此,我想通过在表单中写入数据来向ACCES添加数据。(我不太擅长编程)

另外,如果我将此代码(如下)更改为
a='*任意数*'b='*任意数*'
,程序将工作

a = Entry (form, width=20, font="Arial 16")
a.pack ()
b = Entry (form, width=20, font="Arial 16")
b.pack ()

如果要在调用Add之前关闭连接,请将close调用移到代码底部。

对于.close()语句,一般的最佳做法是将它们放在代码末尾。但在这种情况下,这可能会产生错误。现在请尝试删除.close()语句

from tkinter import *
import pypyodbc
import ctypes

form=Tk ()
form.title ("Add data")
form.geometry ('400x200')

#Create connection
con = pypyodbc.connect('DRIVER={Microsoft Access Driver(*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;    MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:/Users/HP/Desktop/PITL;DBQ=C:/Users/HP/Desktop/PITL/PITL.mdb;')
cursor = con.cursor ()

a = Entry (form, width=20, font="Arial 16")
a.pack ()
b = Entry (form, width=20, font="Arial 16")
b.pack ()

def Add (event):
    cursor.execute ("INSERT INTO Crime (`Number_of_article`, `ID_of_criminal`) VALUES (?, ?)", (a, b))


Button=Button(form, text = 'PUSH ME')
Button.pack ()
Button.bind ('<Button-1>', Add)

form.mainloop ()

con.commit ()
从tkinter导入*
导入PyODBC
导入ctypes
形式=Tk()
表格标题(“添加数据”)
form.geometry('400x200')
#创建连接
con=pypyodbc.connect('DRIVER={Microsoft Access DRIVER(*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:/Users/HP/Desktop/PITL;DBQ=C:/Users/HP/Desktop/PITL/PITL.mdb;'))
cursor=con.cursor()
a=条目(表格,宽度=20,font=“Arial 16”)
a、 包()
b=条目(表格,宽度=20,font=“Arial 16”)
b、 包()
def添加(事件):
cursor.execute(“插入到犯罪(`Number\u of theu article`,`ID\u of theu criminal`)值(?,”,(a,b))
按钮=按钮(形式,文本='按我')
Button.pack()
Button.bind(“”,添加)
form.mainloop()
con.commit()

记住
Add()
函数实际执行的时间点。@klaud。因此,我必须将
Add(event)
更改为
Add()
?这绝对不是我写的。打开连接后,您将直接关闭连接。执行的时间要晚得多。我已经执行了,但没有任何更改,很抱歉,还有一个错误(下一条评论)还有另一个错误,
文件“C:\Users\HP\AppData\Local\Programs\Python\Python36-32\lib\site packages\pypypyodbc-1.3.4-py3.6.egg\pypypyodbc.py”,第1296行,如果参数类型为[col\u num][][]0]='u':TypeError:'type'对象不可下标
我无法放入所有文本
a = Entry (form, width=20, font="Arial 16")
a.pack ()
b = Entry (form, width=20, font="Arial 16")
b.pack ()
from tkinter import *
import pypyodbc
import ctypes

form=Tk ()
form.title ("Add data")
form.geometry ('400x200')

#Create connection
con = pypyodbc.connect('DRIVER={Microsoft Access Driver(*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;    MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:/Users/HP/Desktop/PITL;DBQ=C:/Users/HP/Desktop/PITL/PITL.mdb;')
cursor = con.cursor ()

a = Entry (form, width=20, font="Arial 16")
a.pack ()
b = Entry (form, width=20, font="Arial 16")
b.pack ()

def Add (event):
    cursor.execute ("INSERT INTO Crime (`Number_of_article`, `ID_of_criminal`) VALUES (?, ?)", (a, b))


Button=Button(form, text = 'PUSH ME')
Button.pack ()
Button.bind ('<Button-1>', Add)

form.mainloop ()

con.commit ()