Я пытаюсь сохранить текущее время в моей базе данных доступа со следующим сценарием:Установки времени в MS Access с питоном ODBC
import pyodbc
import time
connStr = """
DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};
DBQ=C:/Users/QPCS Registration/Documents/DB Tests/PYODBC.accdb;
"""
cnxn = pyodbc.connect(connStr)
cursor = cnxn.cursor()
def TimeStamp():
RFID = str(input("Please tap your pass on the reader:\n"))
Current_Time = str(time.strftime("%H:%M"))
cursor.execute('INSERT INTO Time_Of_Entry(RFID_Number,Time_Tapped) VALUES('+RFID+','+Current_Time+');')
cnxn.commit()
def Close_DB_Cnxn():
cnxn.close()
TimeStamp()
Close_DB_Cnxn()
Когда я запускаю его я получаю следующее сообщение об ошибке:
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '19:44'. (-3100) (SQLExecDirectW)")
Проблема, безусловно, связана с «Current_Time», потому что, когда я пытаюсь сохранить переменную «RFID» со сценарием, показанным ниже, она вставляется в базу данных просто отлично.
cursor.execute('INSERT INTO Time_Of_Entry(RFID_Number) VALUES('+RFID+');')
Я попытался изменить тип данных поля «Time_Tapped» в таблице «Time_Of_Entry» из короткого текста, до даты/времени; Короткое время, но это не имело никакого эффекта.
Моя машина работает на Windows 7 home premium 64-bit. У меня есть Microsoft Office 2010; 32-разрядный Я запускаю python 3.3; 32-бит
возможно дубликат [Работа с датами в Access с помощью pyodbc давая «Слишком много параметров» ошибка] (http://stackoverflow.com/questions/28568110/working -with-dates-in-access-using-pyodbc-giving-too-few-parameters-error) –
@GordThompson Я видел это, но не проблема моя? У меня возникли проблемы с вводом «Current_Time» в поле Date/Time в доступе, тогда как они читают его. – Michael