设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1579|回复: 5
打印 上一主题 下一主题

[Access本身] sql语句中使用变量字段时如何不考虑字段的类型实现查询?

[复制链接]
跳转到指定楼层
1#
发表于 2010-11-23 19:12:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 软件下载 于 2010-11-23 19:14 编辑

窗体设置记录源
me.窗体.recordsource="select * from 表 where " & 变量1 & "='" & 变量2 & "'"
大家注意后面变量2的前后都有单引号',此语句在查询时,如果字段[变量1]不是string类型时就会出错,请问有没有好的解决方法?

我想过检测表中字段[变量1]的typename,可不知道怎么写
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2010-11-23 19:23:13 | 只看该作者
我现在在写一个办公用的数据库,里面有十几个数据表,各表结构不一,我新加了一个总表,里面数据是数据库内各表的名称、各表中一到三个使用较频繁的字段,然后用treeview读取该总表,第一级为表名,第二级至第四级根据总表中的字段名依次排序,并且实现点击任一最后子节点,都能打开此子节点所在的数据表并筛选。
现在就遇到上面问题,我设置的子窗体数据源是本帖最后由 软件下载 于 2010-11-23 19:14 编辑


窗体设置记录源
me.窗体.recordsource="select * from 表 where " & 变量1 & "='" & 变量2 & "'",如果变量1字段是boolean时就出错,我暂时使用了个笨办法,就是on error goto err1,然后err1里把这个变量2前后的单引号去掉。

想知道有没有其他好的办法,因为如果设置的字段变量是日期型的又会出错。
3#
发表于 2010-11-23 20:00:59 | 只看该作者
me.窗体.recordsource="select * from 表 where " & Cstr(变量1) & "='" & 变量2 & "'"
4#
发表于 2010-11-24 12:51:43 | 只看该作者
楼上todaynew老汉说的对头,先把变量1转换为String型,再赋值给变量2。
5#
发表于 2010-11-24 17:33:38 | 只看该作者
本帖最后由 aslxt 于 2010-11-24 17:33 编辑

之前我是用一个自定义函数,获得某个库(也可以是sql  server)某个表的某字段的类型,然后根据类型来设定那个符号,字符类型返回['],数字类型返回零长度字符串,日期类型返回[#],通常也就这样了
看来3楼的方法比较科学、简单
6#
 楼主| 发表于 2010-11-24 21:23:16 | 只看该作者
非常感谢,这个很省事.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-27 04:00 , Processed in 0.098728 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表