Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> 查询  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/VS.NET2005
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 AppleVB
 我家网
 911静态资料2
 a9 BBS
 911搜什么
 MCSE技术论坛
 CSharp911.net
 BBS新闻列表
 911静态资料
 911搜C S D N
 911搜全国公交线路
 Office中国
 Java 编程资料站
 Access开发在线
 Access软件网
 CSDN
 MS Support
 上海朋扬电脑
 access爱好者
 交流中心
 ezlavie
 艾赛思俱乐部
 设计在线
 搜CSDN V2
 搜CSDN V3
 oaup
 宇宙网络
 
访问人次
 1007143
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

如何写表名或者字段名是变量的参数查询?

作者:cg1  摘自:access911.net  :cg1  更新日期:2004-12-14  浏览人次:

 

问题:

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

 

问题:

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 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 
相关文章
     没有手动相关文章
     如何解决C#因无“可选参数”导致EXCEL开发困难?
     组合框的行来源如何使用参数存储过程?
     一个常用的组合多条件查询 WHERE 子句的函数
     关于IN子句用参数代替时,多参数该如何处理?还要按参数排序又要如何处理?
     如何在窗体间传递(包括发送、接收、回传)参数
     GetOption以及SetOption的英文参数
     T-SQL、VBA、JET SQL中参数的构建
     怎样删除名字前3位是wwt的表?
     如何构建参数查询?
     ado构建参数一例
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利