

问题:
如何写表名是变量的参数查询? 表名是变量的查询怎么写?比如:SELECT * FROM [@kk]
我要将表名作为一个参数输入,随客户输入的不同查询不同的表。 如何写字段名是变量的参数查询?比如:SELECT * FROM tablename WHERE [input fieldname]='545'
回答:
上述写法是错误的! 同 SQL SERVER 的 T-SQL 语句一样,“表名”或者“字段名”是不允许用变量代替。 你必须用 VBA 来控制 SQL 字串的组合
dim strsql as string dim strTableName as string strTableName="abc" strsql="select * from " & strTableName '后面就看你随便写了,你可以用 RECORDSET 打开,也可以用 create view 语句建立一个查询 '用 recordset 打开的代码如下: dim rs as new adodb.recordset rs.open strsql,currentproject.connection,1,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)