Ms access MS Access:子窗体数据表-变量记录源
我有一个子表单数据表,其记录源可以是可变的。My database根据用户选择构造一个SQL查询,每个查询包含不同的列集合。生成的查询将作为子窗体上数据表的记录源。用户的只读视图 问题: 各种查询单独运行时会产生所需的结果 将结果查询设置为数据表的记录源不会生成任何结果无列/行 我怀疑我需要将查询的属性插入子窗体,以便查看任何结果,就像在菜单条中添加现有字段一样 问题: 有什么能让我摆脱困境的建议吗Ms access MS Access:子窗体数据表-变量记录源,ms-access,vba,Ms Access,Vba,我有一个子表单数据表,其记录源可以是可变的。My database根据用户选择构造一个SQL查询,每个查询包含不同的列集合。生成的查询将作为子窗体上数据表的记录源。用户的只读视图 问题: 各种查询单独运行时会产生所需的结果 将结果查询设置为数据表的记录源不会生成任何结果无列/行 我怀疑我需要将查询的属性插入子窗体,以便查看任何结果,就像在菜单条中添加现有字段一样 问题: 有什么能让我摆脱困境的建议吗 谢谢大家! 以下是我用来填充子表单的示例: Private Sub cmdFind_Displa
谢谢大家! 以下是我用来填充子表单的示例:
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
从子窗体对象中删除数据表窗体,并将“源对象”属性保留为空。 创建一个新的查询sql并不重要,可以将其命名为qryTemp或任何您喜欢的名称。 然后,无论何时要设置子窗体的源,请使用以下命令
CurrentDb.QueryDefs("qryTemp").SQL = "<your new sql here>"
<yoursubformobject>.SourceObject = "Query.qryTemp".