将从VBA运行的sql select语句存储在数值变量中

将从VBA运行的sql select语句存储在数值变量中,sql,ms-access,select,vba,Sql,Ms Access,Select,Vba,我正在创建一个动态传递查询,为了做到这一点,我首先需要查询我的本地数据库并获取一个ID。 这个ID是我将在查询的WHERE子句的传递查询中输入的ID 我的字符串: getCorpID = "SELECT corpID " & _ "FROM dbo_corp " & _ "WHERE name = " & Forms.frmMain.Combo4.Value 然后我试着做一些类似于: CorpID (integer) =

我正在创建一个动态传递查询,为了做到这一点,我首先需要查询我的本地数据库并获取一个ID。 这个ID是我将在查询的WHERE子句的传递查询中输入的ID

我的字符串:

getCorpID = "SELECT corpID " & _
            "FROM dbo_corp " & _
            "WHERE name = " & Forms.frmMain.Combo4.Value
然后我试着做一些类似于:

CorpID (integer) = docmd.runsql (getCorpID)
然而,我意识到docmd runsql不能与select语句一起工作,甚至不能返回值。我可以用什么来运行我的字符串

getCorpId
作为sql并将结果(每次只有一个结果..一个数字)存储在我的变量CorpID中

谢谢。

考虑使用:


请注意,以这种方式构造查询会使您对SQL注入敞开大门。如果你要做数据库开发,你应该熟悉这个主题。你可以在一个组合中包含很多内容,那么为什么不直接参考一个组合专栏呢?乔恩,我只是一个实习生,甚至在大学四年级都没有。“我只是边学边用”。@user3191081:没问题,每个人都从一开始就开始。请在发布生产代码之前覆盖它!“如果你在老板之前提出来,他或她可能会印象深刻。”JonofAllTrades我最后和一位同事谈了我尝试的方法,他向我介绍了一点ADO,我们确保在sub末尾关闭连接,我想这就是你所指的。谢谢大家的提醒,很高兴大家都在努力避免我们这些业余爱好者犯下太多重大错误。谢谢,这确实让我朝着正确的方向前进。
Dim dbs As DAO.Database
Dim rsSQL As DAO.Recordset
Dim getCorpID As String
Dim CorpID 

Set dbs = CurrentDb


getCorpID = "SELECT corpID " & _
        "FROM dbo_corp " & _
        "WHERE name = " & Forms.frmMain.Combo4.Value
Set rsSQL = dbs.OpenRecordset(getCorpID , dbOpenSnapshot)
rsSQL.MoveFirst
CorpID = rsSQL.Fields("corpID")