"datatype mismatch error" in MS Access

Stephen Briley sdb1031 at yahoo.com
Thu Feb 5 21:43:42 EST 2004


For some reason, my posts are scrubbed as attachments.
 Lets hope that sending from the yahoo account works.

I'm new to Python and I'm trying to do some database
work with MS Access, but I can't seem to get around a
 "datatype mismatch error".  Here's an example table
that I'm working with...

ID      name    dept 
1       steve   acct 
2       mike    acct 
3       george  payroll 
4       frank   payroll 
>>> import win32com.client 
>>> engine =
win32com.client.Dispatch("DAO.DBEngine.36") 
>>> db =
engine.OpenDatabase(r"c:\python-access\db4.mdb") 
>>> rs3 = db.OpenRecordset("work") 

>>>rs3 = db.OpenRecordset("select * from work where ID
= 3 ") 
>>>dept = rs3.Fields("dept") 
>>>print dept 
payroll 

The above does exactly what I want, except I'd like to
use a variable instead of the number 3.  
When I try I get the following...

>>>idnum = 3 
>>>rs3 = db.OpenRecordset("select * from work where ID
= '%i'" %(idnum)) 
Traceback (most recent call last): 
  File "<interactive input>", line 1, in ? 
  File
"win32com\gen_py\00025E01-0000-0000-C000-000000000046x0x5x0.py",
line 508, in OpenRecordset 
    ret = self._oleobj_.InvokeTypes(1610809383, LCID,
1, (9, 0), ((8, 1), (12, 17), (12, 17), (12,
17)),Name, 
Type, Options, LockEdit)com_error: (-2147352567,
'Exception occurred.', (0, 'DAO.Database', 'Data type
mismatch in 
criteria expression.', 'jeterr40.chm', 5003464,
-2146824824), None)


The data type for the ID field in the table is
"number" so why am I recieving the datatype mismatch
error? 
I'd really appreciate some help, if anyone has any
suggestions.  Thanks!


__________________________________
Do you Yahoo!?
Yahoo! Finance: Get your refund fast by filing online.
http://taxes.yahoo.com/filing.html




More information about the Python-list mailing list