【发布时间】:2017-06-23 20:35:56
【问题描述】:
我正在尝试按按钮导出子表单,但我得到的只是各种错误,主要是它似乎无法识别子表单对象。我认为最接近的是以下内容:
DoCmd.OutputTo acOutputForm, Me.Form.<Subform_name>.Name, acFormatXLSX, savefileas, True
subform_name 是主窗体中的对象名称 subform_form 源表单
子表单不是来自单独的查询,而是从父表单的 VBA 设置记录集
此 vba 上的错误是 2102 = "表单名称拼写错误或引用的表单不存在。"
保存文件 =
Public Function savefileas() As String
Dim fd As FileDialog, filename As String
On Error GoTo ErrorHandler
Set fd = Application.FileDialog(msoFileDialogSaveAs)
If fd.Show = True Then
If fd.SelectedItems(1) <> vbNullString Then
filename = fd.SelectedItems(1)
End If
Else
'Stop Code Execution for Null File String
End
End If
savefileas = filename & ".xlsx"
'Cleanup
Set fd = Nothing
Exit Function
ErrorHandler:
Set fd = Nothing
MsgBox "Error " & Err & ": " & Error(Err)
End Function
【问题讨论】:
-
尝试使用
Me.<Subform_name>.SourceObject代替Me.Form.<Subform_name>.Name -
这行得通,谢谢,但是它显示的是完整列表,而不是已被记录源的父表单设置过滤的显示列表。我猜这是由于将其设置为提取原始子表单而不是使用精心制作的记录源的嵌套子表单