打印本文 打印本文  关闭窗口 关闭窗口  
表名或者字段名是变量的参数查询
作者:佚名  文章来源:不详  点击数  更新时间:2008/5/24 20:05:13  文章录入:杜斌  责任编辑:杜斌

  问题:

  如何写表名是变量的参数查询?

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

打印本文 打印本文  关闭窗口 关闭窗口