2009-09-21 173 views
5

我正在開發一個項目atm,並且需要將存儲在MS ACCESS數據庫中的數據導入到mySql中。對於mySql我在Ubuntu機器上使用phpMyAdmin,我有另一臺Windows機器,我可以訪問Access數據庫,在MS Access 2003中我找不到將數據轉換爲mySql的選項?這可以做到嗎?將MS ACCESS DB導入mySql?

+0

與此相關的:http://stackoverflow.com/questions/4809654/how-to-import-a-mdbaccess-database-to-mysql/11644195#11644195 – Jacob 2012-08-01 06:38:07

回答

2

通過在Access中選擇一個表格並從文件菜單中簡單地選擇EXPORT,從Access到任何ODBC數據庫都可以進行快速和髒的導出。其中一個導出選項(在底部的下拉列表中)是ODBC,如果您爲其他數據庫設置了DSN,則可以直接導出。顯然,數據類型對於目標數據庫來說不一定是完美的,但它不會錯誤地轉換任何數據 - 在導出之後,您可能需要收緊數據類型。

我認爲Access可以做到這一點令人驚訝,說實話,但它的工作原理。

1

分步指南在Web服務器上運行帶有MySQL數據庫的Access前端應用程序(您不需要IMPORT表,您可以在web服務器上使用msaccess應用程序)並將MsAccess表導出到MySQL(一旦啓動這條道路,你希望它是一個雙向的道路,相信我):

如果您正在運行MSACCESS,我想你使用的是Windows

  1. 安裝MySQL ODBC 5.1驅動程序(連接器)http://dev.mysql.com/downloads/connector/odbc/
  2. 在贏機器上打開控制面板
  3. 管理工具(如Vista或七,搜索ODBC)
  4. 設置數據源ODBC
  5. 系統DSN
  6. ADD

根據您的服務器,你可能有一些很難找到服務器名稱或IP,查找SSH數據庫連接(或類似的東西)。作爲例子,請閱讀NetSol的常見問題解答:http://www.networksolutions.com/support/how-to-back-up-the-mysql-database-using-ssh/

如果你想從MsAccess的BATCH EXPORT/DUMP到MySQL,你可以在訪問時創建一個FORM,在它上面放一個按鈕,然後在VBA中爲這個OnClick )事件:

Dim sTblNm As String 
Dim sTypExprt As String 
Dim sCnxnStr As String, vStTime As Variant 
Dim db As Database, tbldef As DAO.TableDef 

On Error GoTo ExportTbls_Error 

sTypExprt = "ODBC Database" 
sCnxnStr = "ODBC;DSN=DSNname;UID=userOnServer;PWD=pwdOnServer" 
vStTime = Timer 
Application.Echo False, "Visual Basic code is executing." 

Set db = CurrentDb() 

For Each tbldef In db.TableDefs 
Debug.Print tbldef.Name 
sTblNm = tbldef.Name 
DoCmd.TransferDatabase acExport, sTypExprt, sCnxnStr, acTable, sTblNm, sTblNm 
Next tbldef 

MsgBox "Done!" 
On Error GoTo 0 
SmoothExit_ExportTbls: 
Set db = Nothing 
Application.Echo True 
Exit Sub 

ExportTbls_Error: 
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure ExportTblsODST" 
Resume SmoothExit_ExportTbls 

有時,在運行非英文Windows可能會得到錯誤2507變「ODBC數據庫」爲「ODBC」(可與法語)。

IMPORTING:在MSACCESS: 1.文件 2.外部數據源 3.鏈接表

並不真正關心它使用什麼數據庫引擎的前端MSACCESS,所以安全的做法是有2個獨立的MDB的:查詢,表單,宏等與原始數據。這樣,您可以無縫地從使用本地數據庫切換到遠程服務器。並且您的核心應用程序文件不包含適當的數據。