2014-01-21 42 views
0

我正在创建一个动态传递查询,为了做到这一点,我首先需要查询我的本地数据库并获得一个ID。 这个ID是我将放入我的查询的WHERE子句的传递查询。存储一个sql select语句,从VBA运行在一个数值变量

我的字符串:

getCorpID = "SELECT corpID " & _ 
      "FROM dbo_corp " & _ 
      "WHERE name = " & Forms.frmMain.Combo4.Value 

然后我试图做一个类似于:

CorpID (integer) = docmd.runsql (getCorpID) 

我知道,但是那的DoCmd runsql不与SELECT语句工作,或返回价值甚至。我可以用什么来运行我的字符串

getCorpId 

SQL和存储结果(这将只有一个结果,每次..一个数字),我的变量CorpID

谢谢。

+1

注意,构造查询这种方式让你对SQL注入开放。如果你打算做数据库开发,你应该熟悉这个主题。 – 2014-01-21 18:26:57

+1

你可以在组合中包含很多内容,为什么不只是引用组合列? – Fionnuala

+0

乔恩,我只是一名实习生,甚至在我本科的高年级都没有。随我一起学习。 – CRBN

回答

1

考虑如何使用Recordset

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") 
+1

谢谢,这绝对让我朝着正确的方向前进。 – CRBN

相关问题