Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access:子窗体数据表-变量记录源_Ms Access_Vba - Fatal编程技术网

Ms access MS Access:子窗体数据表-变量记录源

Ms access MS Access:子窗体数据表-变量记录源,ms-access,vba,Ms Access,Vba,我有一个子表单数据表,其记录源可以是可变的。My database根据用户选择构造一个SQL查询,每个查询包含不同的列集合。生成的查询将作为子窗体上数据表的记录源。用户的只读视图 问题: 各种查询单独运行时会产生所需的结果 将结果查询设置为数据表的记录源不会生成任何结果无列/行 我怀疑我需要将查询的属性插入子窗体,以便查看任何结果,就像在菜单条中添加现有字段一样 问题: 有什么能让我摆脱困境的建议吗 谢谢大家! 以下是我用来填充子表单的示例: Private Sub cmdFind_Displa

我有一个子表单数据表,其记录源可以是可变的。My database根据用户选择构造一个SQL查询,每个查询包含不同的列集合。生成的查询将作为子窗体上数据表的记录源。用户的只读视图

问题:

各种查询单独运行时会产生所需的结果 将结果查询设置为数据表的记录源不会生成任何结果无列/行

我怀疑我需要将查询的属性插入子窗体,以便查看任何结果,就像在菜单条中添加现有字段一样

问题:

有什么能让我摆脱困境的建议吗


谢谢大家!

以下是我用来填充子表单的示例:

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".