Access交流中心

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

求助:如何将查询结果赋值给变量?

剑与星  发表于:2011-08-16 21:55:16  
复制

表名“档案目录表”,相关字段:“类别号”、“流水号”(此两字段组成复合主键)

现在希望查询出“流水号”的最大值,条件是“类别号”等于文本框架text1值。执行查询得出结果很容易,但怎么在代码中将结果赋值给一个变量呢?

 

Top
竹笛 发表于:2011-08-17 07:18:48

声明一个变量,例如:

dim x as long

x= dlookup("[流水号]","档案目录表","[类别号] ='"& me.text1 &"')



剑与星 发表于:2011-08-17 16:59:53
感谢竹笛老师,让我学了一招dlookup函数的使用,但问题没有得到解决:现在要求的是最大值啊,用dlookup只能求出第一个【流水号】,估计要用到max函数,还要用查询语句……

都市侠影 发表于:2011-08-17 18:28:48

你这个问题呀,貌似挺揪心的。

1、如果你的查询不使用窗体上的值得话那就好办,先建立查询,然后在代码中用DLOOKUP(“最大编号”,“查询名”),这里假设查询中那个字段名为“最大编号。”

2、上述那个如果不成立的话,可能就得使用ADO了,这是万能的,先在VBA编辑窗口中“引用”菜单中选择ADO的引用,然后代码模板如下:

Dim rv As Integer //接受查询值得变量

Dim rs As New ADODB.Recordset

rs.Open "表名或者查询名",ProjectConnection,ProjectConnection,adOpenForwardOnly ,adLockReadOnly ,-1

rv=rs.Fields("最大编号") //假设查询中要输出值的字段名为“最大编号”

Set rs=Nothing

rs.Close

 



都市侠影 发表于:2011-08-17 18:30:08

多了个ProjectConnection



剑与星 发表于:2011-08-17 18:47:08
感谢都市侠影的指点,我估计也只能这样了,待俺试下.

剑与星 发表于:2011-08-21 13:11:41
终于搞定,从网上买到王椎民老师的《Access开发全书》,读到域聚合函数一节,受到启发,用DMAX函数一个语句就解决了,哈哈,自己先庆祝下……

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