select语句中的where后的条件中字段名可否用变量代替

时间:2022-12-12 11:47:37
SELECT *
FROM 名片簿
WHERE 'ゅ' & [记录编号] & 'ゅ' & [选择] & 'ゅ' & [关联码] & 'ゅ' & [编号] & 'ゅ' & [姓] & 'ゅ'……… 'ゅ'Like '*11*';
这一段'ゅ' & [记录编号] & 'ゅ' & [选择] & 'ゅ' & [关联码] & 'ゅ' & [编号] & 'ゅ' & [姓] & 'ゅ'……… 'ゅ'能否用变量代替。
如果可以,代替后完整的语句怎么写。

20 个解决方案

#1




如果是参数查询,则不能用参数来替代表名,字段名。

但你可以通过程序来生成这个SQL语句,比如

sSQL = "select * from table1 where " & fldName &"= 3"

QQ群 48866293 / 12035577 / 7440532 / 13666209
ACCESS专业论坛
http://www.accessbbs.cn/bbs/index.php .
http://www.office-cn.net/vvb/ .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
.
http://www.office-cn.net/home/space.php?uid=141646 .

#2


请教高手:
代替后完整的语句怎么写。WHERE后面共有2000个字符,导致出错。如果可以,可解决了大问题了,谢谢

#3


请教高手:
代替后完整的语句怎么写。WHERE后面共有2000个字符是字段名,导致出错。如果可以,可解决了大问题了,谢谢

#4




按照一楼的例子来写啊?
没有你的具体需求,没办法帮你写。

#5


下面的语句执行后的结果是,提示超过1024字节的错误,能否有变通的办法?
SELECT *
FROM 名片簿
WHERE 'ゅ' & [记录编号] & 'ゅ' & [选择] & 'ゅ' & [关联码] & 'ゅ' & [编号] & 'ゅ' & [姓] & 'ゅ' & [名] & 'ゅ' & [昵称] & 'ゅ' & [所属行业] & 'ゅ' & [单位] & 'ゅ' & [单位简称] & 'ゅ' & [部门] & 'ゅ' & [职务] & 'ゅ' & [表示为] & 'ゅ' & [移动电话] & 'ゅ' & [商务电话] & 'ゅ' & [住宅电话] & 'ゅ' & [商务传真] & 'ゅ' & [商务地址国家地区] & 'ゅ' & [商务地址省市自治区] & 'ゅ' & [商务地址市县] & 'ゅ' & [商务地址街道] & 'ゅ' & [商务地址邮政编码] & 'ゅ' & [商务地址邮箱] & 'ゅ' & [网页] & 'ゅ' & [类别] & 'ゅ' & [关键字] & 'ゅ' & [敏感度] & 'ゅ' & [优先级] & 'ゅ' & [私有] & 'ゅ' & [引用者] & 'ゅ' & [地点] & 'ゅ' & [中间名] & 'ゅ' & [中文称谓] & 'ゅ' & [英文称谓] & 'ゅ' & [缩写] & 'ゅ' & [性别] & 'ゅ' & [职称] & 'ゅ' & [职业] & 'ゅ' & [学历] & 'ゅ' & [专业] & 'ゅ' & [车载电话] & 'ゅ' & [寻呼机] & 'ゅ' & [无绳电话] & 'ゅ' & [电子邮件类型] & 'ゅ' & [电子邮件显示名称] & 'ゅ' & [电子邮件地址] & 'ゅ' & [电子邮件2类型] & 'ゅ' & [电子邮件2显示名] & 'ゅ' & [电子邮件2地址] & 'ゅ' & [电子邮件3类型] & 'ゅ' & [电子邮件3显示名] & 'ゅ' & [电子邮件3地址] & 'ゅ' & [办公地点] & 'ゅ' & [单位主要电话] & 'ゅ' & [里程] & 'ゅ' & [经理姓名] & 'ゅ' & [主要电话] & 'ゅ' & [助理的姓名] & 'ゅ' & [助理的电话] & 'ゅ' & [商务地址街道2] & 'ゅ' & [商务电话2] & 'ゅ' & [其他电话] & 'ゅ' & [其他传真] & 'ゅ' & [商务地址街道3] & 'ゅ' & [其他地址国家地区] & 'ゅ' & [其他地址省市自治区] & 'ゅ' & [其他地址市县] & 'ゅ' & [其他地址街道] & 'ゅ' & [其他地址邮政编码] & 'ゅ' & [其他地址邮箱] & 'ゅ' & [其他地址街道2] & 'ゅ' & [其他地址街道3] & 'ゅ' & [住宅地址国家地区] & 'ゅ' & [住宅地址省市自治区] & 'ゅ' & [住宅地址市县] & 'ゅ' & [住宅地址街道] & 'ゅ' & [住宅地址邮箱] & 'ゅ' & [住宅地址邮政编码] & 'ゅ' & [住宅传真] & 'ゅ' & [住宅地址街道2] & 'ゅ' & [住宅电话2] & 'ゅ' & [住宅地址街道3] & 'ゅ' & [配偶] & 'ゅ' & [子女] & 'ゅ' & [身份证编号] & 'ゅ' & [工作证号码] & 'ゅ' & [纪念日] & 'ゅ' & [生日] & 'ゅ' & [帐户] & 'ゅ' & [记帐信息] & 'ゅ' & [语言] & 'ゅ' & [业余爱好] & 'ゅ' & [附注] & 'ゅ' & [建档日期] & 'ゅ' & [修改日期] & 'ゅ'Like '*11*';

#6




贴你的完整代码。

比如 ssql = "select ..."

你的编程环境是什么 C?VB?

#7


谢谢您的关注。我刚学access,不知能不能传附件。提示是“表达式超过了查询设计网络规定的1024个字符的限制。

#9


上传到http://www.accessbbs.cn/bbs/viewthread.php?tid=19758&highlight=这儿吧 
没有上传附件的地方呀

#10




点 [回复] 按钮

#11


附件在
http://access911.net/csdn/FileDescription.asp?mdb=2009-5-12&id=31
复件查询

#12


已经上传到http://www.accessbbs.cn/bbs/viewthread.php?tid=19758&pid=211277&page=1&extra=#pid211277

#13




如何再现你的问题?

#14


那么晚了,谢谢您的关注。
附件打开后,窗体选多字段多条件查询,数据来源选名片簿,显示字段和条件字段均为空,如果关键词为空不输没问题,随便输入如“22”或“123”等都出错。
如果条件字段选一部分也没问题。
数据来源如果选雇员,都没问题。

#15


不要关闭程序,打开查询生成的临时查询,提示是“表达式超过了查询设计网络规定的1024个字符的限制。

#16




是的,表达式超过了1024,ACCESS的一个限制,你的一个表达式也太长了。换成 
Select * From [名片簿]  
Where [记录编号] Like '*22*' 
or [选择] Like '*22*' 
or [关联码] Like '*22*' 
or [编号] Like '*22*' 
or [姓] Like '*22*' 
or [名] Like '*22*' 
or [昵称] Like '*22*' 
or [所属行业] Like '*22*' 
or [单位] Like '*22*' 
or [单位简称] Like '*22*' 
or [部门] Like '*22*' 
or [职务] Like '*22*' 
or [表示为] Like '*22*' 
or [移动电话] Like '*22*' 
or [商务电话] Like '*22*' 
or [住宅电话] Like '*22*' 
or [商务传真] Like '*22*' 
or [商务地址国家地区] Like '*22*' 
or [商务地址省市自治区] Like '*22*' 
or [商务地址市县] Like '*22*' 
or [商务地址街道] Like '*22*' 
or [商务地址邮政编码] Like '*22*' 
or [商务地址邮箱] Like '*22*' 
or [网页] Like '*22*' 
or [类别] Like '*22*' 
or [关键字] Like '*22*' 
or [敏感度] Like '*22*' 
or [优先级] Like '*22*' 
or [私有] Like '*22*' 
or [引用者] Like '*22*' 
or [地点] Like '*22*' 
or [中间名] Like '*22*' 
or [中文称谓] Like '*22*' 
or [英文称谓] Like '*22*' 
or [缩写] Like '*22*' 
or [性别] Like '*22*' 
or [职称] Like '*22*' 
or [职业] Like '*22*' 
or [学历] Like '*22*' 
or [专业] Like '*22*' 
or [车载电话] Like '*22*' 
or [寻呼机] Like '*22*' 
or [无绳电话] Like '*22*' 
or [电子邮件类型] Like '*22*' 
or [电子邮件显示名称] Like '*22*' 
or [电子邮件地址] Like '*22*' 
or [电子邮件2类型] Like '*22*' 
or [电子邮件2显示名] Like '*22*' 
or [电子邮件2地址] Like '*22*' 
or [电子邮件3类型] Like '*22*' 
or [电子邮件3显示名] Like '*22*' 
or [电子邮件3地址] Like '*22*' 
or [办公地点] Like '*22*' 
or [单位主要电话] Like '*22*' 
or [里程] Like '*22*' 
or [经理姓名] Like '*22*' 
or [主要电话] Like '*22*' 
or [助理的姓名] Like '*22*' 
or [助理的电话] Like '*22*' 
or [商务地址街道2] Like '*22*' 
or [商务电话2] Like '*22*' 
or [其他电话] Like '*22*' 
or [其他传真] Like '*22*' 
or [商务地址街道3] Like '*22*' 
or [其他地址国家地区] Like '*22*' 
or [其他地址省市自治区] Like '*22*' 
or [其他地址市县] Like '*22*' 
or [其他地址街道] Like '*22*' 
or [其他地址邮政编码] Like '*22*' 
or [其他地址邮箱] Like '*22*' 
or [其他地址街道2] Like '*22*' 
or [其他地址街道3] Like '*22*' 
or [住宅地址国家地区] Like '*22*' 
or [住宅地址省市自治区] Like '*22*' 
or [住宅地址市县] Like '*22*' 
or [住宅地址街道] Like '*22*' 
or [住宅地址邮箱] Like '*22*' 
or [住宅地址邮政编码] Like '*22*' 
or [住宅传真] Like '*22*' 
or [住宅地址街道2] Like '*22*' 
or [住宅电话2] Like '*22*' 
or [住宅地址街道3] Like '*22*' 
or [配偶] Like '*22*' 
or [子女] Like '*22*' 
or [身份证编号] Like '*22*' 
or [工作证号码] Like '*22*' 
or [纪念日] Like '*22*' 
or [生日] Like '*22*' 
or [帐户] Like '*22*' 
or [记帐信息] Like '*22*' 
or [语言] Like '*22*' 
or [业余爱好] Like '*22*' 
or [附注] Like '*22*' 
or [建档日期] Like '*22*' 
or [修改日期] Like '*22*' 


这样就可以了。在你的SQL语句生成函数中改一下了。或者判断一下你的长度大于900时就分一下段。

#17


学习了

#18


谢谢ACMAIN_CHM 那么用心,我想结贴,可是提示“ 您分配的分数和总分不相符,请重新分配!”,不知该如何办好,对不起了

#19


好了,总算给16楼结了20分

#20


我想按照您的方式,在SQL语句生成用&函数的方式,以便在其他表也能通用,但无从下手。
不知ACMAIN_CHM老师能否帮我改,您若没空就算了。谢谢 

#1




如果是参数查询,则不能用参数来替代表名,字段名。

但你可以通过程序来生成这个SQL语句,比如

sSQL = "select * from table1 where " & fldName &"= 3"

QQ群 48866293 / 12035577 / 7440532 / 13666209
ACCESS专业论坛
http://www.accessbbs.cn/bbs/index.php .
http://www.office-cn.net/vvb/ .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
.
http://www.office-cn.net/home/space.php?uid=141646 .

#2


请教高手:
代替后完整的语句怎么写。WHERE后面共有2000个字符,导致出错。如果可以,可解决了大问题了,谢谢

#3


请教高手:
代替后完整的语句怎么写。WHERE后面共有2000个字符是字段名,导致出错。如果可以,可解决了大问题了,谢谢

#4




按照一楼的例子来写啊?
没有你的具体需求,没办法帮你写。

#5


下面的语句执行后的结果是,提示超过1024字节的错误,能否有变通的办法?
SELECT *
FROM 名片簿
WHERE 'ゅ' & [记录编号] & 'ゅ' & [选择] & 'ゅ' & [关联码] & 'ゅ' & [编号] & 'ゅ' & [姓] & 'ゅ' & [名] & 'ゅ' & [昵称] & 'ゅ' & [所属行业] & 'ゅ' & [单位] & 'ゅ' & [单位简称] & 'ゅ' & [部门] & 'ゅ' & [职务] & 'ゅ' & [表示为] & 'ゅ' & [移动电话] & 'ゅ' & [商务电话] & 'ゅ' & [住宅电话] & 'ゅ' & [商务传真] & 'ゅ' & [商务地址国家地区] & 'ゅ' & [商务地址省市自治区] & 'ゅ' & [商务地址市县] & 'ゅ' & [商务地址街道] & 'ゅ' & [商务地址邮政编码] & 'ゅ' & [商务地址邮箱] & 'ゅ' & [网页] & 'ゅ' & [类别] & 'ゅ' & [关键字] & 'ゅ' & [敏感度] & 'ゅ' & [优先级] & 'ゅ' & [私有] & 'ゅ' & [引用者] & 'ゅ' & [地点] & 'ゅ' & [中间名] & 'ゅ' & [中文称谓] & 'ゅ' & [英文称谓] & 'ゅ' & [缩写] & 'ゅ' & [性别] & 'ゅ' & [职称] & 'ゅ' & [职业] & 'ゅ' & [学历] & 'ゅ' & [专业] & 'ゅ' & [车载电话] & 'ゅ' & [寻呼机] & 'ゅ' & [无绳电话] & 'ゅ' & [电子邮件类型] & 'ゅ' & [电子邮件显示名称] & 'ゅ' & [电子邮件地址] & 'ゅ' & [电子邮件2类型] & 'ゅ' & [电子邮件2显示名] & 'ゅ' & [电子邮件2地址] & 'ゅ' & [电子邮件3类型] & 'ゅ' & [电子邮件3显示名] & 'ゅ' & [电子邮件3地址] & 'ゅ' & [办公地点] & 'ゅ' & [单位主要电话] & 'ゅ' & [里程] & 'ゅ' & [经理姓名] & 'ゅ' & [主要电话] & 'ゅ' & [助理的姓名] & 'ゅ' & [助理的电话] & 'ゅ' & [商务地址街道2] & 'ゅ' & [商务电话2] & 'ゅ' & [其他电话] & 'ゅ' & [其他传真] & 'ゅ' & [商务地址街道3] & 'ゅ' & [其他地址国家地区] & 'ゅ' & [其他地址省市自治区] & 'ゅ' & [其他地址市县] & 'ゅ' & [其他地址街道] & 'ゅ' & [其他地址邮政编码] & 'ゅ' & [其他地址邮箱] & 'ゅ' & [其他地址街道2] & 'ゅ' & [其他地址街道3] & 'ゅ' & [住宅地址国家地区] & 'ゅ' & [住宅地址省市自治区] & 'ゅ' & [住宅地址市县] & 'ゅ' & [住宅地址街道] & 'ゅ' & [住宅地址邮箱] & 'ゅ' & [住宅地址邮政编码] & 'ゅ' & [住宅传真] & 'ゅ' & [住宅地址街道2] & 'ゅ' & [住宅电话2] & 'ゅ' & [住宅地址街道3] & 'ゅ' & [配偶] & 'ゅ' & [子女] & 'ゅ' & [身份证编号] & 'ゅ' & [工作证号码] & 'ゅ' & [纪念日] & 'ゅ' & [生日] & 'ゅ' & [帐户] & 'ゅ' & [记帐信息] & 'ゅ' & [语言] & 'ゅ' & [业余爱好] & 'ゅ' & [附注] & 'ゅ' & [建档日期] & 'ゅ' & [修改日期] & 'ゅ'Like '*11*';

#6




贴你的完整代码。

比如 ssql = "select ..."

你的编程环境是什么 C?VB?

#7


谢谢您的关注。我刚学access,不知能不能传附件。提示是“表达式超过了查询设计网络规定的1024个字符的限制。

#8


#9


上传到http://www.accessbbs.cn/bbs/viewthread.php?tid=19758&highlight=这儿吧 
没有上传附件的地方呀

#10




点 [回复] 按钮

#11


附件在
http://access911.net/csdn/FileDescription.asp?mdb=2009-5-12&id=31
复件查询

#12


已经上传到http://www.accessbbs.cn/bbs/viewthread.php?tid=19758&pid=211277&page=1&extra=#pid211277

#13




如何再现你的问题?

#14


那么晚了,谢谢您的关注。
附件打开后,窗体选多字段多条件查询,数据来源选名片簿,显示字段和条件字段均为空,如果关键词为空不输没问题,随便输入如“22”或“123”等都出错。
如果条件字段选一部分也没问题。
数据来源如果选雇员,都没问题。

#15


不要关闭程序,打开查询生成的临时查询,提示是“表达式超过了查询设计网络规定的1024个字符的限制。

#16




是的,表达式超过了1024,ACCESS的一个限制,你的一个表达式也太长了。换成 
Select * From [名片簿]  
Where [记录编号] Like '*22*' 
or [选择] Like '*22*' 
or [关联码] Like '*22*' 
or [编号] Like '*22*' 
or [姓] Like '*22*' 
or [名] Like '*22*' 
or [昵称] Like '*22*' 
or [所属行业] Like '*22*' 
or [单位] Like '*22*' 
or [单位简称] Like '*22*' 
or [部门] Like '*22*' 
or [职务] Like '*22*' 
or [表示为] Like '*22*' 
or [移动电话] Like '*22*' 
or [商务电话] Like '*22*' 
or [住宅电话] Like '*22*' 
or [商务传真] Like '*22*' 
or [商务地址国家地区] Like '*22*' 
or [商务地址省市自治区] Like '*22*' 
or [商务地址市县] Like '*22*' 
or [商务地址街道] Like '*22*' 
or [商务地址邮政编码] Like '*22*' 
or [商务地址邮箱] Like '*22*' 
or [网页] Like '*22*' 
or [类别] Like '*22*' 
or [关键字] Like '*22*' 
or [敏感度] Like '*22*' 
or [优先级] Like '*22*' 
or [私有] Like '*22*' 
or [引用者] Like '*22*' 
or [地点] Like '*22*' 
or [中间名] Like '*22*' 
or [中文称谓] Like '*22*' 
or [英文称谓] Like '*22*' 
or [缩写] Like '*22*' 
or [性别] Like '*22*' 
or [职称] Like '*22*' 
or [职业] Like '*22*' 
or [学历] Like '*22*' 
or [专业] Like '*22*' 
or [车载电话] Like '*22*' 
or [寻呼机] Like '*22*' 
or [无绳电话] Like '*22*' 
or [电子邮件类型] Like '*22*' 
or [电子邮件显示名称] Like '*22*' 
or [电子邮件地址] Like '*22*' 
or [电子邮件2类型] Like '*22*' 
or [电子邮件2显示名] Like '*22*' 
or [电子邮件2地址] Like '*22*' 
or [电子邮件3类型] Like '*22*' 
or [电子邮件3显示名] Like '*22*' 
or [电子邮件3地址] Like '*22*' 
or [办公地点] Like '*22*' 
or [单位主要电话] Like '*22*' 
or [里程] Like '*22*' 
or [经理姓名] Like '*22*' 
or [主要电话] Like '*22*' 
or [助理的姓名] Like '*22*' 
or [助理的电话] Like '*22*' 
or [商务地址街道2] Like '*22*' 
or [商务电话2] Like '*22*' 
or [其他电话] Like '*22*' 
or [其他传真] Like '*22*' 
or [商务地址街道3] Like '*22*' 
or [其他地址国家地区] Like '*22*' 
or [其他地址省市自治区] Like '*22*' 
or [其他地址市县] Like '*22*' 
or [其他地址街道] Like '*22*' 
or [其他地址邮政编码] Like '*22*' 
or [其他地址邮箱] Like '*22*' 
or [其他地址街道2] Like '*22*' 
or [其他地址街道3] Like '*22*' 
or [住宅地址国家地区] Like '*22*' 
or [住宅地址省市自治区] Like '*22*' 
or [住宅地址市县] Like '*22*' 
or [住宅地址街道] Like '*22*' 
or [住宅地址邮箱] Like '*22*' 
or [住宅地址邮政编码] Like '*22*' 
or [住宅传真] Like '*22*' 
or [住宅地址街道2] Like '*22*' 
or [住宅电话2] Like '*22*' 
or [住宅地址街道3] Like '*22*' 
or [配偶] Like '*22*' 
or [子女] Like '*22*' 
or [身份证编号] Like '*22*' 
or [工作证号码] Like '*22*' 
or [纪念日] Like '*22*' 
or [生日] Like '*22*' 
or [帐户] Like '*22*' 
or [记帐信息] Like '*22*' 
or [语言] Like '*22*' 
or [业余爱好] Like '*22*' 
or [附注] Like '*22*' 
or [建档日期] Like '*22*' 
or [修改日期] Like '*22*' 


这样就可以了。在你的SQL语句生成函数中改一下了。或者判断一下你的长度大于900时就分一下段。

#17


学习了

#18


谢谢ACMAIN_CHM 那么用心,我想结贴,可是提示“ 您分配的分数和总分不相符,请重新分配!”,不知该如何办好,对不起了

#19


好了,总算给16楼结了20分

#20


我想按照您的方式,在SQL语句生成用&函数的方式,以便在其他表也能通用,但无从下手。
不知ACMAIN_CHM老师能否帮我改,您若没空就算了。谢谢 

#21