查询参数
表名或者字段名为变量作为一个参数输入
2015-01-26 11:51:00

 

如果我们的表名或者字段名是一个变量,那么如何写这个变量的参数查询呢?随客户输入的不同的表或者不同的字段名。如何将表名或者字段名作为一个参数输入,

显然表和字段这样的写法是不允许的

Select * From [aa]

Select * From tblname Where [input fieldname]='abc'

这里其实同 SQL SERVER 的 T-SQL 语句是一样的,“表名”或者“字段名”是不允许用变量代替。

你必须用 VBA 来控制 SQL 字串的组合

例如:

dim strsql as string

dim strtblname as string

strtblname ="abc"

strsql="select * from " & strtblname 

'你可以用 RECORDSET 打开,也可以用 create view 语句建立一个查询

'用 recordset 打开的代码如下:

dim rs as new adodb.recordset

rs.open strsql,currentproject.connection,3,1

....

 

'也可以用 Create VIEW 语句来创建一个新的查询,并打开

on error resume next

currentproject.connection.execute "drop view 查询名称"

currentproject.connection.execute "create view 查询名称 as " & strsql

docmd.openquery "查询名称"

 

顺便提一下, SQL SERVER 应该操作如下

declare @sql varchar(200)

set @sql='select * from ' + @table_name

execute(@sql)