2014-09-05 50 views
0

我想将用户在参数查询中输入的值存储到声明的变量中;我怎样才能做到这一点?如何将参数查询中输入的值存储在声明的变量中?

例如:

Dim storeHere as Integer 

// other vba statements 

stmnt = //other sql statements 

     "WHERE [Student].[Class] = [Enter Class:] " & _ 

     // other sql statements 

所以,我想用户输入作为类的值存储在变量storeHere。 我怎样才能做到这一点。请帮忙。 注:我使用的接入

+0

用户如何输入值?通过弹出窗口或单元格? – 2014-09-05 10:44:30

+0

通过默认情况下出现的meesage框(在访问中)。 – 2014-09-05 11:00:45

+0

好的,那么值是如何分配给'storeHere'整数? – 2014-09-05 11:01:31

回答

2

说,你在访问已保存的查询名为[getStudentsByClass]

PARAMETERS [Enter Class:] Short; 
SELECT Student.* 
FROM Student 
WHERE (((Student.Class)=[Enter Class:])); 

如果你运行它交互系统会提示“输入类”,然后显示相应的结果。如果要从VBA代码运行该查询,则需要先提示输入参数值,然后通过QueryDef对象运行查询。

Dim storeHere As Integer 
Dim cdb As DAO.Database, qdf As DAO.QueryDef, rst As DAO.Recordset 

storeHere = InputBox("Enter class:", "Enter Parameter Value") 
Set cdb = CurrentDb 
Set qdf = cdb.QueryDefs("getStudentsByClass") 
qdf![Enter Class:] = storeHere 
Set rst = qdf.OpenRecordset(dbOpenSnapshot) 

' Do what you want with the returned records. For demo purposes: 
Debug.Print rst.RecordCount & " record(s) returned." 

rst.Close 
Set rst = Nothing 
Set qdf = Nothing 
Set cdb = Nothing 
相关问题