设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

表名或者字段名是变量的参数查询

1970-1-1 08:00| 发布者: cg1| 查看: 4544| 评论: 0

原文:http://access911.net/72FAB31E11DCEDF3.htm

问题:

 如何写表名是变量的参数查询?
表名是变量的查询怎么写?比如: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)

最新评论

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-9 07:09 , Processed in 0.094178 second(s), 16 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部