Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何通过字段中一个字符引用相应记录?

艹右小土  发表于:2014-01-14 10:35:49  
复制

我设计了一个登录窗体,其中有部门控件,我想通过登录后,只显示这个部门的相关记录,不显示其他部门的记录,具体如下:

部门为:二部时,调用所以记录号为2001的记录,(其中2为部门编号,001为序列号-999号),能不能在语句中写成 2*

求大师帮助上一条语句,谢谢了!

 

Top
zhaoyoulong 发表于:2014-01-14 10:51:50

如果该字段值是数值型的数据可以用:

比如 [部门编号]为:1,2,3等

Cint(NZ([字段名],0))>=(Cint([部门编号])*1000+1) and Cint(NZ([字段名],0))<=(Cint([部门编号])+1)*1000-1) 或者:

Cint(NZ([字段名],0)) between(Cint([部门编号])*1000+1)  and (Cint([部门编号])+1)*1000-1)

当然你可以把它字符处理:

[字段名Like "'" &  [部门编号] & "###'"

个人认为数值处理要比字符处理快

这里的[部门编号]一个变量,我给你的只是一个符号,也许就是你的窗体的控件值.根据你的实际情况替换



艹右小土 发表于:2014-01-14 15:17:37

文本的呢?我的是文本型的




zhaoyoulong 发表于:2014-01-14 15:22:00
字段值是文本的还是字段类型是文本的?

zhaoyoulong 发表于:2014-01-14 15:22:46
位数固定吗?

zhaoyoulong 发表于:2014-01-14 15:26:26
如果字段类型是文本的,但值是数值型的,上面的方法可以:Cint()函数可以转换

如果字段值是文本的且长度固定:LIKE "2???"

当然,用LIKE "2*"也可以,中不过*代表任何有效字符或字符串 检索速度较慢(数据小时看不出来)



布鲁斯 发表于:2014-01-15 08:41:53
个人建议,不用这么麻烦,你只要在登录的那个按钮编写:每个部门一个特定的数字或者字母,然后通过select case判断来进入2级部门菜单,菜单中只有自己部门的按钮激活,这样不就解决你按部门显示的功能咯。
仅仅是增加一个菜单界面,判断也容易编写


艹右小土 发表于:2014-01-15 12:08:37
是文本型的但前面还有字符,[2004]3-2001是完整的数据,是不是要写成like“???????2???”

zhaoyoulong 发表于:2014-01-15 12:18:01

like "[[]####[]]-" &  [部门号] & "###"  [部门编号]是数字型

like "[[]####[]]-'" &  [部门号] & "'###"  [部门编号]是文本型

比如:[2004]-2001

或者写成:Mid([部门编号], 8, 1) like "'" & [部门号] & "'"



总记录:8篇  页次:1/1 9 1 :