Connecting Microsoft Access Database (DAO)
Thomas Keil
t.keil at zvs.zgs.de
Thu Feb 17 19:45:41 EST 2000
Hello,
thanks for help! I finally used a query - perhaps its useful for someone
else:
# Getting a query from Access Database using DAO and SQL:
import win32com.client
FileName=r'example.mdb'
sql='SELECT * FROM [foo table];' # "sql=foo table" does the same
# examples
# Date='#02/05/00#'
# sql='SELECT * FROM [foo table] WHERE [foobar] = %s' %Date
# joining 2 tables:
# Tab1='[foo table]'
# Tab2='[bar table]'
# whereDef='WHERE [foobar] = %s' %Date
# ... with range:
# whereDef='WHERE [foobar] BETWEEN %s AND %s' %(Date1, Date2)
# sql='SELECT * FROM '+Tab1+' INNER JOIN '+Tab2+' ON '+Tab1+'.ID =
'+Tab2+'.ID '+whereDef+';'
Engine='DAO.DBEngine.36'
def Query(FileName, sql): # have a look at the COM-tutorial
from Christian Tismer
e=win32com.client.Dispatch(Engine)
db=e.OpenDatabase(FileName)
rs=db.OpenRecordset(sql)
query=[]
f=rs.Fields
query.append(map(lambda fld: fld.Name, f)) # names
rs.MoveFirst() # getting data
while not rs.EOF:
query.append(map(lambda fld: fld.Value, f))
rs.MoveNext() # ! never forget this
db.Close()
return (query)
for z in Query(FileName, sql): print z
#---
Th. Keil mailto: t.keil at zvs.zgs.de
More information about the Python-list
mailing list