在访问表单(VBA)上查询结果

时间:2019-09-03 22:34:45

标签: sql vba ms-access

我正在以新手的身份进行Access项目,但遇到了一些问题(必须在VBA中全部完成)。简而言之,我必须在表单上显示查询结果。我的文本框很少,我需要显示一些信息。我知道我必须将RecordSource更改为窗体,并且必须为每个文本框设置RecordSet。这是我的代码,但是不起作用:

 Private Sub Form_open(Cancel As Integer)
    Dim strSQL As String, queryDef As DAO.queryDef
    strSQL = " *SELECT etc...* "
    CurrentDb.QueryDefs.Delete "Info"
    Set queryDef = CurrentDb.CreateQueryDef("Info", strSQL)
    Me.RecordSource = queryDef.OpenRecordset() '**error here type mismatch

如何将我的RecordSource更改为打开表单时创建的查询? (已经与Me.RecordSet = strSQL进行过尝试,但不能与INNER JOIN一起使用)
万分感谢!

1 个答案:

答案 0 :(得分:1)

您只需混合使用表单记录源和表单记录集。

记录源splitWords[i].join("")是一个字符串,其中包含表/查询名称或sql select语句。

return ${splitWords}yay

记录集是一个对象。因此,必须对其进行设置

${splitWords}yay

避免重复使用Me.RecordSource,将其存储在变量中。

每次使用它时,都会创建一个数据库实例的副本(通常是Me.RecordSource = strSQL ),它将消耗不必要的资源。

有关该主题的一些有用链接:

Set Me.RecordSet = queryDef.OpenRecordSet

或者仅使用记录源:

CurrentDb