Tabelle in Access ansprechen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
barbex
User
Beiträge: 4
Registriert: Montag 27. Januar 2003, 18:13
Wohnort: Hamburg

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
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

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/
barbex
User
Beiträge: 4
Registriert: Montag 27. Januar 2003, 18:13
Wohnort: Hamburg

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
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

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
barbex
User
Beiträge: 4
Registriert: Montag 27. Januar 2003, 18:13
Wohnort: Hamburg

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
barbex
User
Beiträge: 4
Registriert: Montag 27. Januar 2003, 18:13
Wohnort: Hamburg

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!
Antworten