Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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
如何将SQL查询结果保存到VBA中的变量中?_Sql_Vba_Ms Access - Fatal编程技术网

如何将SQL查询结果保存到VBA中的变量中?

如何将SQL查询结果保存到VBA中的变量中?,sql,vba,ms-access,Sql,Vba,Ms Access,我想执行一个select语句,并将其结果(只有一条记录有一个值)放入一个变量中 这是access中的VBA代码。 Private Sub Child_Click() Dim Childnummer As Integer Dim childnaam As String Childnummer = Me.Keuzelijst21.Value DoCmd.Close DoCmd.OpenForm "submenurubrieken", acNormal, , " rubr

我想执行一个select语句,并将其结果(只有一条记录有一个值)放入一个变量中

这是access中的VBA代码。

Private Sub Child_Click()
   Dim Childnummer As Integer
   Dim childnaam As String
   Childnummer = Me.Keuzelijst21.Value
   DoCmd.Close
   DoCmd.OpenForm "submenurubrieken", acNormal, , " rubrieknummer = " & Childnummer & ""
   childnaam = rubrieknaamSQL(Childnummer)
   Forms!submenurubrieken.Tv_rubrieknaam.Value = childnaam
End Sub

Public Function rubrieknaamSQL(Child As Integer)
   Dim rst As DAO.Recordset
   Dim strSQL As String
   strSQL = "SELECT rubrieknaam FROM dbo_tbl_rubriek where rubrieknummer = " & Child & ""
   Set rst = CurrentDb.OpenRecordset(strSQL)
End Function

只需让函数从记录集中返回值:

公共函数rubrieknaamSQL(子函数为整数)
将rst设置为DAO.Recordset
作为字符串的Dim strSQL
strSQL=“从dbo\u tbl\u rubriek中选择rubrieknaam,其中rubrieknumer=“&Child&”
Set rst=CurrentDb.OpenRecordset(strSQL)
“新代码:
rubrieknaamSQL=rst!红霉素
rst.关闭
设置rst=无
端函数

通过使用“DLookup”函数,您几乎可以在一行中完成此操作


其中Child是您要查找的记录的ID。

为什么不能用myVar=rst存储记录的值!nameOfValueField?是我第一次在vba中进行这样的查询。无论如何谢谢你!这是什么意思!在rst!rubrieknaam do?@Jorge-参见相关问题。
rubrieknaam = Nz(DLookup("rubrieknaam ", "dbo_tbl_rubriek ", rubrieknummer & " =[Child]"), 0)