使用VBA从前端访问表单重新链接后端mdb

时间:2018-11-21 21:52:11

标签: database vba ms-access access-vba

我的Access数据库分为后端和前端。 我已经在前端创建了一个Access窗体,其中包含一个文本框,一个 Browser 按钮和一个 Relink 按钮。

当我单击浏览时,将弹出文件管理器以选择我的.mdb文件。选择文件后,文件的路径将显示在文本框中。

我想要的是当我按下 Relink 按钮时,它应该采用textBox的路径,并将后端文件链接到前端。

到目前为止,这是我的代码:

'browse button
 Private Sub browseBtn_Click()
   Dim objDialog As Object
   set objDialog = Application.FileDialog(3)
   With objDialog
        .show
        .AllowMultiSelect = False
        If .SelectedItems.Count = 1 Then
            'textFiled displays the path
             Me.textField = .SelectedItems(1) 
        End If
    End With
 End Sub

'relink button
Private Sub linkBtn_Click()
    Dim newConnection As String
    Dim currentPath As String
    currentPath = Me.textField
    Dim tblDef As TableDef
        tblDef.Connect = newConnection
        tblDef.RefreshLink
End Sub

这有什么问题?

1 个答案:

答案 0 :(得分:0)

我已经弄清楚了,这是完整的代码:

Private Sub browseBtn_Click()
Dim objDialog As Object

 Set objDialog = Application.FileDialog(3)

 With objDialog
   .title = "Please select the backend file"
   .AllowMultiSelect = False
   .Show
   If .SelectedItems.Count = 1 Then
    Me.textField = .SelectedItems(1)
   End If
 End With
End Sub

Private Sub linkBtn_Click()
  RefreshLinks (Me.textField)
End Sub


Public Function RefreshLinks(strFilename As String)
   Dim dbs As dao.Database
   Dim tdf As TableDef

   Set dbs = CurrentDb

    For Each tdf In dbs.TableDefs
         If Len(tdf.Connect) > 0 Then
             tdf.Connect = ";DATABASE=" & strFilename
             Err = 0
            On Error Resume Next
            tdf.refreshlink
             If Err <> 0 Then
                RefreshLinks = False
                 Exit Function
             End If
         End If
    Next tdf
    RefreshLinks = True

End Function