access中數據表的自動重新聯接
來源:易賢網 閱讀:732 次 日期:2014-09-28 10:04:09
溫馨提示:易賢網小編為您整理了“access中數據表的自動重新聯接”,方便廣大網友查閱!

用access做應用程序,往往做成"數據"和"程序"兩個數據庫,"數據"數據庫中只存放數據表,"程序"數據庫中存放所有的form,query,report,module等,通過表聯接"程序"數據庫可以訪問所有"數據"數據庫中的表。

當我們的應用程序更換存儲位置的時候往往失去正確的表聯接,造成運行錯誤。下面的一段程序可以自動找回表聯接。在我的應用中"程序"數據庫名字是stockMgr.mdb,"數據"數據庫名字是stock-Data.mdb

注意: 該程序僅限于"程序"和"數據"存放在同一個目錄而且是對應單個"數據"文件的情況。

Function ReAttachTable()

Dim MyDB As Database, MyTbl As TableDef

Dim cpath As String

Dim datafiles As String, i As Integer

On Error Resume Next

Set MyDB = CurrentDb

cpath = trimFileName(CurrentDb.Name)

datafiles = "stock-data.mdb"

DoCmd.Hourglass True

For i = 0 To MyDB.TableDefs.Count - 1

Set MyTbl = MyDB.TableDefs(i)

If MyTbl.Attributes = DB_ATTACHEDTABLE And Left(MyTbl.Connect, 1) = ";" Then

MyTbl.Connect = ";DATABASE=" & cpath & datafiles

MyTbl.RefreshLink

If Err Then

If vbNo = MsgBox(Err.description & ",繼續(xù)嗎?", vbYesNo) Then Exit For

End If

End If

Next i

DoCmd.Hourglass False

msgbox "Tables relink finish."

End Function

'絕對路徑中去掉文件名,返回路徑

Function trimFileName(fullname As String) As String

Dim slen As Long, i As Long

slen = Len(fullname)

For i = slen To 1 Step -1

If Mid(fullname, i, 1) = "" Then

Exit For

End If

Next

trimFileName = Left(fullname, i)

End Function

在程序啟動或者按鈕動作中調用即可。

更多信息請查看IT技術專欄

更多信息請查看數據庫
易賢網手機網站地址:access中數據表的自動重新聯接

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網