MS Access中的SQL查询变量

时间:2011-09-20 20:56:25

标签: 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

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

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

1 个答案:

答案 0 :(得分:5)

在某种程度上

parameters @test int;
select * from MyTable where ID = @test

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

Joel Coehoorn
Query MS Access database in VB 2008

  

您可以使用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

进一步注释重新编辑为OP

查询1

update MyTable2 set (...) where ID > (select max(test) from table1)

查询2

update MyTable3 set (...) where ID < (select max(test) from table1)