2015-10-06 31 views
0

我試圖將現有數據庫更新到我們的.mdb數據庫的較新版本。我想從新版本的.mdb中添加一個表到現有的.mdb中。我試圖按照以下Microsoft支持鏈接。尋找代碼解決方案將.mdb表導入到另一個.mdb表

https://support.microsoft.com/en-us/kb/200427

我的設置是這樣的:

CDatabase db; 
    CString SQL; 

    SQL = "SELECT * INTO " 
     "[ODBC;Driver=Microsoft Access Driver (*.mdb);DBQ=C:\\Database\\info.mdb;PWD=password;]." 
     "[Diagnosis] " 
     "FROM [Diagnosis]"; 
    try 
    { 
     // Open database and execute SQL statement to copy data. 
     db.OpenEx("Driver=Microsoft Access Driver (*.mdb);" 
       "DBQ=C:\\Database\\newDBTemp\\info.mdb;PWD=password;", CDatabase::noOdbcDialog); 
     db.ExecuteSQL(SQL); 
    } 
    catch(CDBException* pEX) 
    { 
     // Display errors. 
     AfxMessageBox(pEX->m_strError); 
     pEX->Delete(); 
    } 

當我運行代碼我得到一個錯誤You cannot use ODBC to import from, export to, or link and external Microsoft Jet or ISAM database table to your database.

所以,我的問題是,有沒有辦法來複制整個表從一個數據庫移動到另一個數據庫而不是手動輸入所有字段?我更改了路徑和變量名稱,以使示例更加簡潔。

+0

什麼是特定版本的MS Access?來源和目的地。 – Morpheus

+0

訪問2003.這是一箇舊的程序。 –

+0

由於您正在尋找代碼解決方案,因此刪除了使用.csv導出/導入的建議。 – Morpheus

回答

0

由於錯誤與ODBC有關,所以最好使用the link you provided中提到的DAO。希望你能找到你所需要的,因爲Access 2003不再被支持(Microsoft ended support for Office 2003 on April 8, 2014)。

Microsoft Office Access 2003 | Microsoft DAO 3.6對象庫

MSDN上的數據訪問對象(DAO)3.6庫的引用。

+0

我會看看這個建議。我也不知道支持在2003年結束了,但我們的客戶已經擁有了15年的設備,所以如果我們升級了設備,他們需要的不僅僅是軟件升級。 –

+0

根據我的經驗,從Access 2003遷移到Access 2007需要一些努力。後續更新非常簡單(2007年至2010年至2013年)。祝你好運。 https://msdn.microsoft.com/en-us/library/bb203849%28v=office.12%29.aspx?f=255&MSPPError=-2147217396 – Morpheus

0

您是否曾嘗試在同一個版本的訪問權限中同時打開兩個mdb文件,然後將表格從一個表格拖放到另一個表格。

我有Access 2013,我以前用過這個。

我真的不明白爲什麼要將舊版本更新爲新版本,但是您是否將表格從不同的新版本複製到舊版本?當然,將舊版本更新爲新版本,然後複製表格。

+0

不幸的是,我試圖用代碼更新我們的客戶軟件,以便他們可以只需運行更新安裝程序。我可以在我的機器上做到這一點,雖然是的。 –

+0

嘿@傑夫。我的第三段呢? – HarveyFrench

+0

我試圖將其編輯得更清晰。我只是在數據庫中添加一個新表。兩個版本都將是.mdb數據庫(access 2003)我只需要導入一個表。當我說版本時,我指的是我們的公司版本的代碼,而不是Access的版本。 –