2015-02-25 16 views
6

Mam problemy z połączeniem bazy danych w dostępie z pyodbc. Widziałem inne przykładowe kody, które wyglądają prawie identycznie jak moje:Jak podłączyć MS Access do Pythona za pomocą pyodbc

import pyodbc 
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=PYODBC.accdb;UID=me;PWD=pass') 
cursor = cnxn.cursor() 

cursor.execute("SELECT Forename FROM Student") 
row = cursor.fetchone() 
if row: 
    print(row) 

Moja maszyna działa na systemie Windows 7 Home Premium 64-bit. Mam Microsoft Office 2010; 32-bitowy Używam Pythona 3.3; 32-bitowy

Nie mam pojęcia, co jest nie tak, nie mam nawet komunikatu o błędzie, powłoka otwiera się, ale nic się nie dzieje. Każda pomoc jest bardzo doceniana.

+0

Dlaczego sterownik ODBC Driver SQL Server, ale określasz bazę danych Access? I jest baza danych o nazwie PYODBC.accdb? Uwaga: SQL Server jest bazą danych serwera klienta, natomiast Access jest bazą danych serwera plików. Korzystają z różnych sterowników i parametrów połączenia. – Parfait

+0

Proszę [edytuj] swoje pytanie z większą ilością szczegółów. Czy Twój komputer ma zainstalowany pakiet Microsoft Office (lub prawdopodobnie tylko Microsoft Access)? Jeśli tak, proszę podać wersję (2013 ?, 2010 ?, ...?) I czy jest to wersja 32-bitowa czy 64-bitowa. Daj nam również znać, czy korzystasz z 32-bitowego lub 64-bitowego Pythona. –

+0

@GordThompson Dodałem więcej szczegółów do tego pytania, przepraszam, powinienem był to napisać oryginalnie. – Michael

Odpowiedz

8

Ponieważ używasz 32-bitowych wersji zarówno pakietu Microsoft Office, jak i Python, powinieneś być gotowy, gdy tylko uzyskasz prawidłowy ciąg połączenia. Powinno to wyglądać następująco:

connStr = (
    r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};" 
    r"DBQ=C:\full\path\to\your\PYODBC.accdb;" 
    ) 
cnxn = pyodbc.connect(connStr) 
+0

To rozwiązało mój problem, dziękuję bardzo !! – Michael