我正在尝试创建一个在DS视图表单中显示所选表格的方法。该表单将被重复使用以查看不同的表,因此我认为最简单的方法是创建表单并根据用户选择动态更改RecordSource。
我创建了一个名为“frmDisplay”的表单,用于向用户显示表的内容。我正在尝试使用此代码更新表单。
Private Sub btnViewEntries_Click()
Dim frmDisplay As Form
Dim selection As String
Me.cmboSelection.SetFocus
selection = "tbl" & Me.cmboSelection.Text
Set frmDisplay.RecordSource = selection
DoCmd.OpenForm "frmDisplay", acFormDS
End Sub
目前,当我尝试将RecordSource设置为在组合框中进行的选择时,代码会抛出“不正确的属性使用”错误。
Set frmDisplay.RecordSource = selection
我现在已经看了一会儿,但我似乎无法找到适用于此示例的任何明确答案。我发现的大多数帖子都缺少Set关键字...
有人认出这个问题吗?更重要的是,这是实现这一目标的最佳方式 工作?
由于
_____ 编辑 _____
我想出来了,请看下面的代码。
Dim selection As String
Me.cmboSelection.SetFocus
selection = "SELECT * from tbl" & Me.cmboSelection.Text
DoCmd.OpenForm "frmDisplay", acDesign
Forms!frmDisplay.Form.RecordSource = selection
DoCmd.Close acForm, "frmDisplay", acSaveYes
DoCmd.OpenForm "frmDisplay", acFormDS
答案 0 :(得分:0)
我注意到您已经提供了答案,但您可能会发现以下内容:
如果您的主窗体包含控件cmboSelection
和btnViewEntries
,则添加子窗体控件并将其命名为fsbDisplay
。不要在这个子表单中放置任何内容,不加限制。
现在尝试以下单行:
Private Sub btnViewEntries_Click()
fsbDisplay.SourceObject = "Table.tbl" & cmboSelection.Value
End Sub
此方法的优点是您可以使用它来调用任何表或查询(前缀为Query.
而不是Table.
),并且显示的字段是动态创建的。