如果我们的表名或者字段名是一个变量,那么如何写这个变量的参数查询呢?随客户输入的不同的表或者不同的字段名。如何将表名或者字段名作为一个参数输入,
显然表和字段这样的写法是不允许的
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)