Access交流中心

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

关于用ADO绑定窗体的问题

pingpingdandan  发表于:2014-02-27 21:02:06  
复制

Private Sub Form_Load()
Dim sql As String
  If CBool(cn.State = 0) Then cn.Open
  sql = "SELECT 项目,项目明细,sum(金额) FROM 个人收支 group by 项目,项目明细"
    rst.Open sql, cn, 1, 3
   Set Me.个人收支.Form.Recordset = rst
   rst.Close
   cn.Close
End Sub

打开窗体的时候 提醒: 运行时错误:7965

                               您输入的对象不是有效的RECORDSET属性。。

因为SQL语句进行分组汇总了,所以显示错误  如果改为 SELECT * FROM 个人收支  就没有问题了。。请各位大师帮忙下:谢谢!

 

Top
cspa 发表于:2014-02-28 08:36:21

改为:

sql = "SELECT first(项目),first(项目明细),sum(金额) FROM 个人收支 group by 项目,项目明细"

 



pingpingdandan 发表于:2014-02-28 11:15:23
大师,为什么前面加FIRST呢?有点无法理解?是不是只要是分组的 都要加这个FIRST吗?我查看了很多书籍 都无法找到这方面的内容,大师能否给个这方面学习的链接或书籍,我好查阅下。谢谢大师!

cspa 发表于:2014-02-28 13:52:20

使用group by后,会将数据分组,分组后每组可能有不止一个数据,你必须用FIRST、LAST、SUM、AVG等运算告诉SQL,分组后你选择的是组内的哪个(种)数据。

在本例中,用 项目,项目明细分组后,会得到若干组“项目”和“项目明细”相同的数据,用FIRST或LAST运算结果是一样的,随便用一个就行。

可找一本介绍SQL的书看看。



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