我有一个参数化查询 GET_CUSTOMER:
SELECT * FROM Customer WHERE id = [customer_id]
我想从另一个查询调用这个查询并传递一个参数:
SELECT * FROM GET_CUSTOMER(123)
请注意,上面的代码无效,它是为了让您了解我正在尝试做什么。是否可以在 MS Access 中执行此操作?
更新1:
例如,我发布的查询是。实际的查询要复杂得多。我知道我可以使用表连接,但在我的特定情况下,如果我可以在其他查询(也是参数化的)中运行参数化查询会容易得多。我无法使用访问表单,因为我正在使用我的 .NET 应用程序访问。
Access 在所有查询之间共享参数,因此无需专门将参数从一个查询传递到另一个查询。
查询 1:
SELECT * FROM Customer WHERE ID > [param1] AND ID < [param2]
查询 2:
SELECT * FROM Query1
VB.NET 代码:
Dim ConnString As String = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=Database.mdb" Dim SqlString As String = "Query2" Using Conn As New OleDbConnection(ConnString) Using Cmd As New OleDbCommand(SqlString, Conn) Cmd.CommandType = CommandType.StoredProcedure Cmd.Parameters.AddWithValue("param1", "1") Cmd.Parameters.AddWithValue("param2", "3") Conn.Open() Using reader As OleDbDataReader = Cmd.ExecuteReader() While reader.Read() Console.WriteLine(reader("ID")) End While End Using End Using End Using