多個ACCESS資料表匯入

b0446
抱歉我是新手,
我有一個access 2007資料庫系統範本,本身使用的是ACCESS 2003 日後要套進去用,但目前測試範本多次並無任何動作反應,請問各位大大不知道哪裡出問題了?

請各位大大幫忙。

一、匯入ACCESS檔:
按表單「匯入ACCESS多檔」按鍵將連結資外部ACCESS多個檔匯入
===========
Private Sub 匯入ACCESS多檔_Click()
Dim linkTB As DAO.Recordset
Set linkTB = CurrentDb.OpenRecordset("Select * from LinkOK") '讀取LINKOK表列中的access
If linkTB("Link") = "N" Then '若是讀取Y OR N 欄位
Dim fn As String, tg As String
tg = CurrentProject.Path
If Right(tg, 1) <> "\" Then
tg = tg & "\"
End If
fn = tg & linkTB("filename")
CurrentDb.TableDefs.Refresh
Dim db As DAO.Database
Dim re As DAO.Recordset
Set db = CurrentDb
Set re = CurrentDb.OpenRecordset("select * from LINK_Table") '連結access內的資料庫
Do Until re.EOF '刪除現有資料表
On Error Resume Next
db.TableDefs.Delete re("tbname")
re.MoveNext
Loop
db.TableDefs.Refresh
re.MoveFirst '移至第一筆
Dim db_Data As DAO.Database
Set db_Data = DBEngine.Workspaces(0).OpenDatabase(fn)
Do Until re.EOF
Dim table As TableDef
Set table = db.CreateTableDef(re("tbName")) '建立連結
table.Connect = ";DATABASE=" & db_Data.Name
table.SourceTableName = re("tbName")
db.TableDefs.Append table '將新資料表加入至現用資料庫
table.RefreshLink
re.MoveNext
Loop
CurrentDb.Execute "Update LinkOK set datapath='" & Left(fn, InStrRev(fn, "\")) & "',Link='Y'"
End If
DoCmd.OpenForm "MainForm"
End Sub
=================================

1.資料表:
Link_Table:tbname欄_課程登記、用餐登記(2筆資料)
LINKOK:
Type欄:ACCESS、
Link欄:Y OR N、
filename欄:1-1.mde' 1-2.mde' 1-3.mde
datapath欄:D:\待列印
用餐登記:學員編號、日期、份數
課程登記:學員編號、課程名稱、課程日期
2.外部在「D:\待列印」放置
1-1.mde' 1-2.mde' 1-3.mde
以上檔案皆內含資料表:
用餐登記:學員編號、日期、份數
課程登記:學員編號、課程名稱、課程日期



羅伯斯
Access 2003 與 Access 2007 ,兩者的檔案是不一樣的, 2003 的副檔名是 .mdb,而 2007 的副案名則為 .accdb ,你的 Access 2003
肯定是無法直接匯入 Access 2007 的檔案,必須先找到較新版本的 Access ,把 .accdb 檔轉成 .mdb , 才能用 Access 2003 匯入.

由於 Access 2003 太老舊了, 建議你最少升級到 Access 2010 版.
b0446
謝謝大大,真的是新手,也心太粗沒意識到這個問題!
因原先系統即為 ACCESS 2003,之前曾想升級,但出現問題,內部程式太多是小弟無法理解的,又影響層面太大,只能繼續使用。

目前已將範本重新以ACCESS 2003做了一個新檔,但仍無法執行???
是因為上面的範本程式碼,有ACCESS 2003無法支援的嗎??感恩!
羅伯斯
ACCESS 的程式碼,並不是獨立的檔案,而是連結在資料庫檔內,所以 ACCESS 2003 一樣無法支援.
b0446
請問大大,就以上的範本,無法在ACCESS 2003執行的意思?
技術上,2003無法有其他方式完成這樣的動作?
b0446
剛把它全部用ACCESS 2007也是沒反應?!

是不是因為小弟的系統太舊了,大家比較無法幫小弟解惑?!
羅伯斯
你確定用 ACCESS 2007 也不能開啟範例檔嗎? 開啟時 ACCESS 有出現何種訊息?
b0446
大大,程式沒任何反應!外部資料庫的資料,並未匯入。
b0446
對不起,不會用,關閉話題時,想將部份的EP給參與者羅伯斯,但不慎被份配完畢了!!
回到頂部