"datatype mismatch error" in MS Access

Vincent Wehren vwehren at home.nl
Thu Feb 5 23:44:45 EST 2004


"Stephen Briley" <sdb1031 at yahoo.com> schrieb im Newsbeitrag
news:mailman.1285.1076035428.12720.python-list at python.org...
| 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))

Have you tried it without the single quotes around %i?

Regards,
Vincent Wehren




| 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