Access交流中心

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

关于Dlookup的查询问题求助

林哥  发表于:2011-01-10 10:41:42  
复制

在“零件”表,设有“统一识别码”、“零件名称”等字段。窗体的文本框控件有:零件分类--text1、分类码--text2、零件编码--text3、零件名称--text4、统一识别码--text5等。
在窗体中录入新内容时,想通过dlookup查询确定是否有重复记录。也就是查找零件表里统一识别码前10位(也就是bm值)这一范围内的记录里,是否有相同名称的零件。


代码如下,但无法运行:
Dim bm,ID As String
bm=me.[text2]&me.[text3]
Me.[Text5].Value =bm&"-"&ID
if DLookup("零件名称", "零件", "left(统一识别码,10)=left(Me.[Text5],10)")=me.[text4] then
Me.[Text4].SetFocus
MsgBox "此记录已录入"
end if

问题:
1、截取字符串进行比较的代码如何写?以上的dlookup句错在哪里?
2、如果按变量进行比较,代码又如何写?

请各位赐教。谢谢!

 

Top
煮江品茶 发表于:2011-01-10 10:48:14

第三个参数应该如下:

"left(统一识别码,10)='" & left(Me.[Text5],10) & "'"



林哥 发表于:2011-01-10 12:35:07
,真诚地谢谢你,这些问题对你来说不是问题。但做为一个新手,刚接触ACCESS的人来说有多难,学校学了点VB,工作中用不到,10多年也就忘完了,现在回过头来得重新开始。因此还得麻烦你解决一下第二个问题,也就是说换成变量查询如何处理?


wang decheng 发表于:2011-01-10 16:52:11

1。符号 & 使用时两边应有空格

2。不清楚你所谓"用变量进行比较"是什么意思

3。可以用Dcount("零件名称", "零件", left(统一识别码,10)='" & left(Me.[Text5],10) & "'")>0

    进行比较



wang decheng 发表于:2011-01-10 16:59:46

应是

Dcount("零件名称", "零件", "left(统一识别码,10)='" & left(Me.[Text5],10) & "'")>0

致歉!



煮江品茶 发表于:2011-01-10 17:12:22

看不出第2个问题和第1个问题有什么区别。

Me.[Text5]就是一个变量,它不过是控件变量而已。也就是说,Me.[Text5]可以看成变量X,也可以看出变量Y。进而用X或者Y或者阿猫阿狗什么变量来替代Me.[Text5]是完全一样的。

 



林哥 发表于:2011-01-11 08:18:58
谢谢   煮江品茶    wang decheng  的指点。  

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