|
问题:
| 如何写表名是变量的参数查询? 表名是变量的查询怎么写?比如:
我要将表名作为一个参数输入,随客户输入的不同查询不同的表。 如何写字段名是变量的参数查询?比如:| 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) |
|
问题:
| PARAMETERS b1 Text ( 255 ); DELETE * FROM CottonBagInfo WHERE 加工年度+包号 IN (SELECT 加工年度+包号 FROM [;database=@b1].COTTONBAGINFO); |
这样b1这个参数不起作用呀?该怎么定义呀? |
回答:
| 一样道理,必须用组织字符串的方法来完成 Dim strSQL As String Dim b1 As String b1 = "C:\db2.mdb" strSQL = "delete from [;database=" + b1 + "].T1" Debug.Print strSQL CurrentProject.Connection.Execute strSQL |
|
问题:
| 关于Top查询使用参数的难题 使用这样的句子:select top 30 from talbe;在Access中没有问题 可是如何能把 30修改为 参数(@ItemCount)呢? 在Server2000中,有一个set rowcount @ItemCount, 在Access中有相应的办法吗? |
回答:
| 其实和 SQL SERVER 用 EXECUTE 加组织字串的方法一样。ACCESS 也一样这么做 dim strsql as string dim n as long n=30 strsql="select top " & cstr(n) & " * from table" dim rs as new adodb.recordset rs.open strsql,conn,1,1 |
|
本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。
access911.net 原创文章,作者本人对文章保留一切权利。 如需转载必须征得作者同意并注明本站链接
|
|