MS Access中的SQL查询变量

Mar*_*oVW 2 sql ms-access

在为SQL Server编写查询时,您可以声明并使用如下变量:

declare @test int
select @test = max(ID) from MyTable1
update MyTable2 set (...) where ID > @test
update MyTable3 set (...) where ID < @test
Run Code Online (Sandbox Code Playgroud)

在为MS Access编写查询时,有没有办法类似地声明和使用变量?

我需要使用另一个查询的结果填充变量,然后使用该值执行插入/更新操作.该查询将从.NET应用程序运行.

Fio*_*ala 5

在某种方式

parameters @test int;
select * from MyTable where ID = @test
Run Code Online (Sandbox Code Playgroud)

但是,您无法使用set @test = 1234,可以在运行查询或在VBA中设置时手动输入参数.

Joel Coehoorn
VB 2008中查询MS Access数据库

您可以使用System.Data.OleDb命名空间中的类来查询访问数据库:

Using cn As New OleDbConnection("connection string here"), _
      cmd As New OleDbCommand("SELECT query with ? parameter here", cn)

    cmd.Parameters.Add("?", OleDbType.Int).Value = 1234

    MyCombobox.DataSource = cmd.ExecuteReader()
End Using
Run Code Online (Sandbox Code Playgroud)

进一步注释重新编辑为OP

查询1

update MyTable2 set (...) where ID > (select max(test) from table1)
Run Code Online (Sandbox Code Playgroud)

查询2

update MyTable3 set (...) where ID < (select max(test) from table1)
Run Code Online (Sandbox Code Playgroud)