在MS访问中的子表单上显示查询结果

时间:2018-03-24 16:53:25

标签: ms-access access-vba ms-access-2010

我有一个主表单和一个子表单。主窗体有很少的标签和相应的文本框。主窗体上的文本框中填充了有关单击主窗体上的命令按钮的数据。

其次,当单击主窗体上的任何标签时,标签名称将传递给另一个子窗口,该子窗口将其作为输入并运行查询并在子窗体上显示结果(Bal_Sheet_Notes1)。但是,我无法正确获取第二部分,并且经常收到错误消息。

子表单的名称是Bal_Sheet_Notes1

我的第二部分代码如下

Sub Bal_Sheet_Notes(Label_Name As String)
Dim ssql1 As String
ssql1 = "SELECT b.[Cat2], b.[Cat1], (sum(a.[Bal Fwd])) AS sumjan, (sum(a.[FEB])) AS sumfeb FROM Trial_Balance AS a, Act_Master AS b WHERE nz(a.[GBOBJ]) = nz(b.Object) and nz(a.[GBSUB]) = nz(b.Sub) and b.Cat6 = " & "'" & Label_Name & "'" & " GROUP BY b.[Cat2], b.[Cat1];"
Me.Forms!Bal_Sheet_Notes1.SetFocus
Me.Forms!Bal_Sheet_Notes1.RecordSource = ssql1
Me.Forms!Bal_Sheet_Notes1.Requery
End Sub

请建议。

2 个答案:

答案 0 :(得分:0)

您的语法不正确。 如果代码位于SubForm1中,那么它应该是

Me.Parent!SubForm2.SetFocus
Me.Parent!SubForm2.Form.RecordSource

如果代码位于主窗体中,请移除“父母”。 SubForm2是子窗体控件的名称。 设置RecordSource时不需要Requery。

答案 1 :(得分:0)

这有点棘手,因为你从subform1调用subform2。你的语法应该是:

Forms!Mainform!Subform1.Form.RecordSource = ssqul1

我建议将以下页面加入书签,以帮助您将来区分这些用例:Forms: Refer to Form and Subform properties and controls