获取表单以使用多个查询作为记录源

时间:2013-12-03 11:32:29

标签: vba ms-access

所以我一直在研究我的程序的下一步,它包含两个按钮,每个按钮应根据向用户询问的数据打开一个治疗表。

在互联网上搜索了一下之后,我发现以下语法应该成功了

Forms!FormName.RecordSource = Query

没有。

我的实际代码如下:

Private Sub BQueryDate_Click()
On Error GoTo Err_BQueryDate_Click

Dim stDocName As String
Dim stLinkCriteria As String

Forms!ShowTreatment.RecordSource = QueryDate
stDocName = "ShowTreatment"

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_BQueryDate_Click:
Exit Sub

Err_BQueryDate_Click:
    MsgBox Err.Description
    Resume Exit_BQueryDate_Click

End Sub

“Showtreatment”曾经是一个显示表格治疗的每条记录的表格,但现在我想在查询QueryDate和QueryHospital之间切换,这样我就可以对数据进行排序。

当我点击按钮访问时,使用该代码告诉我在表单列表中找不到“ShowTreatment”。

我认为它可能是由于记录源线没有在正确的位置引起的,但是无论如何都无法使它工作,而且我没有找到任何适用于我的具体案例的例子,因为我发现每一个我试图在子表单上使用它,我需要更改普通表单。

编辑: 好吧,愚蠢的问题因为我在这里发现了类似的东西。 (如果我只搜索了3页)

Access VBA: Set record source of form on button click

我会试一试。

不。现在它只是问我日期和医院名称。我想我在这里缺少一些重要的东西。

代码

Forms.Item(MostTratamiento).RecordSource = "ConsultaQueryHospital"

不会给我一条错误信息(它甚至会询问我有关医院名称的信息),但不会更改记录来源,因此只显示默认值。

1 个答案:

答案 0 :(得分:1)

像这样:

Private Sub BQueryDate_Click()
  On Error GoTo Err_BQueryDate_Click

  Dim stDocName As String
  Dim stLinkCriteria As String

  stDocName = "ShowTreatment"

  ' we open first the form:
  DoCmd.OpenForm stDocName, , , stLinkCriteria

  ' we then set up it's RecordSource:
  Forms!ShowTreatment.RecordSource = "QueryDate"

Exit_BQueryDate_Click:
Exit Sub

Err_BQueryDate_Click:
    MsgBox Err.Description
    Resume Exit_BQueryDate_Click

End Sub