Seite 1 von 1

Tabelle in Access ansprechen

Verfasst: Montag 27. Januar 2003, 18:36
von barbex
Hallo Leute!

Ich bin noch nicht so bewandert in Python und habe mich auch noch nie mit VBA beschäftigt. Daher ist mir völlig unklar, wie man auf eine Access Datenbank zugreift und dann eine SQL-Abfrage über eine Tabelle absetzt. Das ganze muß möglichst simpel sein.... es wäre jedenfalls schön, wenn es ohne externe Module machbar wäre.

Kann mir jemand ein paar code-Schipsel zeigen?

Danke!

Barbara

Re: Tabelle in Access ansprechen

Verfasst: Montag 27. Januar 2003, 20:20
von Voges
Hallo Barbara!

Code: Alles auswählen

PythonWin 2.2.2 (#37, Oct 14 2002, 17:02:34) [MSC 32 bit (Intel)] on win32.
Portions Copyright 1994-2001 Mark Hammond (mhammond@skippinet.com.au) - see 'Help/About PythonWin' for further copyright information.
>>> import dbi
>>> import odbc
>>> from pprint import pprint
>>> myconn = odbc.odbc('PYDBDEMOS')
>>> mycursor = myconn.cursor()
>>> mycursor.execute('SELECT ClientID,CompanyName,Address1 FROM Clients')
0
>>> mydata = mycursor.fetchall()
>>> mycursor.close()
>>> myconn.close()
>>> pprint(mydata)
[('JAC', 'JAC Recruitment', None),
 ('MEGAWAD', 'MegaWad Investments', '1 St. Fredericks-Le-Grand'),
 ('NOSHCO', 'NoshCo Supermarkets', '17 Merton Road'),
 ('WOMBLES', 'Wimbledon Garbage Disposal Ltd.', None)]
>>> 
Hab' ich aus dem Buch [1] abgetippt und hat (ausnahmsweise) auf Anhieb geklappt. Hinter PYDBDEMOS verbirgt sich eine mdb-Datei, die vorher als ODBC-Datenquelle angemeldet wurde. Das ganze geht natürlich nur unter Windows und auch nur, wenn die Windows-Extentions [2] installiert sind. Mittels DAO und ADO kann man ebenfalls irgendwie auf Access-Dateien zugreifen.

Vielleicht hilft das schonmal weiter. Das erwähnte Buch ist auf jeden Fall empfehlenswert.
Jan

[1] Python - Programming on Win32, ISBN 1 565 92 621 8
[2] http://starship.python.net/crew/mhammond/

Verfasst: Montag 27. Januar 2003, 20:42
von barbex
Danke, das ist ja schonmal ein Ansatz!

Hat vielleicht noch jemand eine DAO Idee?

Ich nutze nämlich Python aus einer anderen Anwendung heraus und ich glaube, mein Zugriff auf ODBC wäre da nicht unkompliziert. DAO wäre da glaube ich besser.

Ich hatte noch vergessen zuerwähnen, daß es nur unter Windows gehen soll und Access installiert ist.

DAO anyone??

Danke
Barbara

Verfasst: Montag 27. Januar 2003, 21:11
von Voges
barbex hat geschrieben:DAO anyone??
Wenn ich schonmal beim Abtippen bin :-)
Mit dem Folgenden bekommst Du einen Recordset:

Code: Alles auswählen

>>> import win32com.client
>>> daoEngine = win32com.client.Dispatch('DAO.DBEngine.36')
>>> daoDB = daoEngine.OpenDatabase('c:\\tmp\\pydbdemos.mdb')
>>> daoRS = daoDB.OpenRecordset('Select ClientID FROM Clients')
Jan

Verfasst: Montag 27. Januar 2003, 21:31
von barbex
Extrem cool!

Teilweise hatte ich mir auch so ein paar dieser Sachen zusammengefummelt, aber es sieht ziemlich unübersichtlich aus (funktioniert natürlich auch nicht).

Also Danke schön Jan, morgen werde ich mich damit weiter beschäftigen!


Horrido!
Barbara

oder aber ADO

Verfasst: Dienstag 28. Januar 2003, 20:20
von barbex
Falls es noch jemand interessiert, hier http://www.e-coli.net/pyado.html ist die ADO Geschichte sehr gut aufgeführt, es gibt da auch einen Link auf eine Seite mit DAO Informationen, die aber nicht ganz so ausführlich ist.

So wie es aussieht ist DAO eine aussterbende Technik, die schon mit Access2000 durch ADO ersetzt werden sollte.

Tja, dann guck ich mir mal ADO an...

Horrido!