我有一个子窗体数据表,其RecordSource可以是变量。我的数据库根据用户选择(每个查询的不同列集合)构造SQL查询。生成的查询旨在成为子窗体上数据表的RecordSource。 (用户的只读视图)
问题:
各种查询在自己运行时产生所需的结果 将结果查询设置为数据表的RecordSource不会产生任何结果(没有列/行)
我怀疑我需要将查询的属性插入到子窗体中才能看到任何结果(很像菜单条中的“添加现有字段”)。
问题:
有什么指示让我离开原点吗?
谢谢!
答案 0 :(得分:1)
从子表单对象中删除数据表表单,并将源对象属性保留为空。 创建一个新查询(sql并不重要),并将其命名为qryTemp(或任何你喜欢的)。 然后,只要您想设置子表单的源,请使用此
CurrentDb.QueryDefs("qryTemp").SQL = "<your new sql here>"
<yoursubformobject>.SourceObject = "Query.qryTemp".
答案 1 :(得分:0)
以下是我用来填充子表单的示例:
Private Sub cmdFind_DisplayName_Click()
Dim dbs As Database, rstPatient As Recordset
Dim txtDisplayName, strQuote As String
strQuote = Chr$(34)
On Error GoTo ErrorHandler
Me.OrderBy = "DISPLAYNAME"
Me.OrderByOn = True
Set dbs = CurrentDb
Set rstPatient = Me.RecordsetClone
txtDisplayName = Trim(InputBox("Please Enter Patient Name ", "Patient Find By Name"))
txtDisplayName = UCase(txtDisplayName) & "*"
If IsNull(txtDisplayName) Then
MsgBox ("No Patient Name Entered - Please Enter a Valid Patient Name")
Else
rstPatient.FindFirst "[DISPLAYNAME] Like " & strQuote & txtDisplayName & strQuote
If Not (rstPatient.NoMatch) Then
Me.Bookmark = rstPatient.Bookmark
Me.Refresh
Else
MsgBox ("Patient Not Found - Please Enter a New Patient Name")
End If
End If
GoTo Exit_cmdFind_Click
ErrorHandler:
MsgBox LTrim(RTrim(Me.NAME)) + "." + "Patient Find By Display Name - " + "Error: " + AccessError(Err.Number)
Exit_cmdFind_Click:
rstPatient.Close
Set dbs = Nothing
Set rstPatient = Nothing
End Sub