我是Access VBA开发的新手,并被要求调试并向以前两位开发人员所使用的Access 2007应用程序添加功能。
表单显示数据库中的记录,并显示每条记录的按钮。该按钮应该使用适当的路径打开文件。但是当用户单击该按钮时,它始终使用表单显示的第一条记录中的文件路径,而不是正确记录中的文件路径。
代码看起来正在尝试使用书签打开正确的文件,但如上所述,这是行不通的。以下是按钮点击事件的相关代码。当我尝试Debug.Print form.Bookmark到即时窗口时,它只显示一个问号。
Dim rs As Recordset
Set rs = form.RecordsetClone
rs.Bookmark = form.Bookmark
编辑:根据@ Remou的请求添加更多代码。单击按钮时:
Private Sub OpenFile_Click()
Form_FilingProcess.Subform_cmdOpenFile_Click Me
End Sub
哪个电话:
Public Sub Subform_cmdOpenFile_Click(frm As Form)
Set rs = frm.RecordsetClone
rs.Bookmark = frm.Bookmark
然后继续打开文件。
答案 0 :(得分:4)
如果按钮是针对每条记录的,则不需要对记录集进行任何操作。您可以使用控件的名称来获取文件:
TheFile=Me.MyControl
您似乎同时拥有表单和子表单。我猜你的答案是这样的设置:
|------------------------------|
| Main Form |
--------------------------------
Sub form
--------------------------------
Row Button
--------------------------------
Row Button
--------------------------------
如果按钮的名称是OpenFile,请尝试:
Private Sub OpenFile_Click()
MsgBox Me.NameOfAContolHere & ""
'Form_FilingProcess.Subform_cmdOpenFile_Click Me
End Sub
然后可以使用它来打开如下文件:
Private Sub OpenFile_Click()
FollowHyperlink Me.NameOfControlWithPathToFile
'Form_FilingProcess.Subform_cmdOpenFile_Click Me
End Sub
答案 1 :(得分:0)
以下是您的子应该是什么样子:
Public Sub Subform_cmdOpenFile_Click(frm As Form)
Dim CurrentBookmark as String
Set rs = frm.RecordsetClone
CurrentBookmark = frm.Bookmark
rs.Bookmark = CurrentBookmark
End Sub
将字符串变量设置为表单书签的值。然后将记录集的书签设置为字符串变量值。
Dim rs As Recordset
dim CurrentBookmark as String
Set rs = Me.RecordsetClone
CurrentBookmark = Me.Bookmark
rs.Bookmark = CurrentBookmark
http://msdn.microsoft.com/en-us/library/aa223967(office.11).aspx