辅导:ACCESS中重新定位链接表二步走
来源:优易学  2011-9-26 14:06:51   【优易学:中国教育考试门户网】   资料下载   IT书店
  假设前台数据库文件名为frontBase.mdb
  后台数据库文件名为backData.mdb
  frontBase当中有链接表tbl1, tbl2, tbl3, …,链接到backData.mdb中
  首先我们要在前台数据库文件的启动窗体加载事件中判断链接是否正确
  方法是打开任意一个链接表,假设为tbl1,代码如下:
  Public Function CheckLinks() As Boolean
  ’ 检查到后台数据库的链接;如果链接存在且正确的话,返回 True 。  
  Dim dbs As Database, rst As DAO.Recordset  
  Set dbs = CurrentDb()
  ’ 打开链接表查看表链接信息是否正确。
  On Error Resume Next
  Set rst = dbs.OpenRecordset(“tbl1”)
  rst.Close
  ’ 如果没有错误,返回 True 。
  If Err = 0 Then
  CheckLinks = True
  Else
  CheckLinks = False
  End If  
  End Function
  启动窗体的加载事件:
  Private Sub FORM_Load()
  If CheckLinks = False then
  Docmd.OpenFORM “frmConnect”
  End If
  End Sub
  frmConnect 连接窗体如下图
  [img]f:\\m.bmp[/img]
  接下来的事情就是如何刷新链接表了。
  上面的窗体右边的按钮是用用来调用API打开文件对话框,具体代码如下:
  Declare Function GetOpenFileName Lib \"comdlg32.dll\" Alias \"GetOpenFileNameA\" (pOpenfilename As OPENFILENAME) As Boolean
  Type OPENFILENAME
  lStructSize As Long
  hwndOwner As Long
  hInstance As Long
  lpstrFilter As String
  lpstrCustomFilter As String
  nMaxCustFilter As Long
  nFilterIndex As Long
  lpstrFile As String
  nMaxFile As Long
  lpstrFileTitle As String
  nMaxFileTitle As Long
  lpstrInitialDir As String
  lpstrTitle As String
  flags As Long
  nFileOffset As Integer
  nFileExtension As Integer
  lpstrDefExt As String
  lCustData As Long
  lpfnHook As Long
  lpTemplateName As String
  End Type
  Private Sub FileOpen_Click()
  Dim ofn As OPENFILENAME
  Dim rtn As String
  ofn.lStructSize = Len(ofn)
  ofn.hwndOwner = Me.hwnd
  ofn.lpstrFilter = \"数据库文件 (*.mdb)\" & vbNullChar & \"*.mdb\"
  ofn.lpstrFile = Space(254)
  ofn.nMaxFile = 255
  ofn.lpstrFileTitle = Space(254)
  ofn.nMaxFileTitle = 255
  ofn.lpstrInitialDir = CurrentProject.Path
  ofn.lpstrTitle = \"后台数据文件为\"
  ofn.flags = 6148
  rtn = GetOpenFileName(ofn)
  FileName.SetFocus
  If rtn = True Then
  FileName.Text = ofn.lpstrFile
  FileName.Text = FileName.Text
  OK.Enabled = True
  Else
  FileName.Text = \"\"
  End If
  End Sub
  连接按钮刷新链接表 ,代码如下:
  Private Sub OK_Click()
  Dim tabDef As TableDef
  For Each tabDef In CurrentDb.TableDefs
  If Len(tabDef.Connect) > 0 Then
  tabDef.Connect = \";DATABASE=\" & Me.FileName.Text & \";PWD=\" + 后台数据库密码
  tabDef.RefreshLink
  End If
  Next
  MsgBox \"连接成功!\"
  DoCmd.Close acFORM, Me.Name
  End Sub
  其实很简单只有两步,判断链接是否正确和刷新链接表。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训