2010-06-22 208 views
4

我想用Python在Windows中創建一個mdb數據庫文件,但似乎無法用Python文檔弄清楚。我讀到的所有內容都與建立連接以及如何處理光標有關。如何在Python中創建一個mdb數據庫文件?

有什麼想法?謝謝...

+0

通過MDB數據庫,你的意思是一個Microsoft Access數據庫? – mikej 2010-06-22 15:24:10

+0

是的,一個Access數據庫 – GuidoS 2010-06-22 20:27:48

+0

用一個例子更新了我的答案。 – JAB 2010-06-23 15:38:41

回答

10

我對comtypes模塊的使用經驗相當不錯。您可能希望爲所使用的方法提供Access DAO/ADO/VBA引用,但由於comtypes模塊動態生成COM庫包裝,因此沒有內置文檔。

下面是它如何工作的簡要示例。 (來吧,測試一下自己。)

from comtypes.client import CreateObject 

access = CreateObject('Access.Application') 

from comtypes.gen import Access 

DBEngine = access.DBEngine 
db = DBEngine.CreateDatabase('test.mdb', Access.DB_LANG_GENERAL) 
     # For me, test.mdb was created in my My Documents folder when I ran the script 

db.BeginTrans() 

db.Execute("CREATE TABLE test (ID Text, numapples Integer)") 
db.Execute("INSERT INTO test VALUES ('ABC', 3)") 

db.CommitTrans() 
db.Close() 

(移動第二import語句的CreateObject線,其中用於類型庫的Python包裝模塊以前不存在的情況後。)

+0

如果你可以創建一個DBEngine變量,那麼你也可以使用所有的DAO表,字段,索引和關係對象。這些給你更多的創建對象的詳細控制。請參閱我網站上的TempTables.MDB頁面,其中說明了如何在您的應用程序中使用臨時MDB。 http://www.granite.ab.ca/access/temptables.htm – 2010-06-24 03:25:50

+0

對不起,這是如此的新,但我安裝了comtypes並試圖運行代碼,但後來我得到了以下異常:「ImportError:can not導入名稱訪問「。有任何想法嗎? – GuidoS 2010-06-24 13:19:10

+0

@Tony Toews:是的,呃,這可能是因爲我沒有真正將數據插入到我以這種方式創建的表中,但是當我創建一個表並使用DAO添加一個字段時,它沒有顯示之後我在Access中打開數據庫時會遇到問題,因爲這只是作爲使用'comtypes'創建MDB文件的一個例子,所以我不想花費更多時間來解決它。 – JAB 2010-06-24 14:38:03

相關問題