+ -
当前位置:首页 → 问答吧 → 如何使用VB对Access分类汇总后返回结果!谢谢!

如何使用VB对Access分类汇总后返回结果!谢谢!

时间:2009-08-17

来源:互联网

RT

请问如何使用VB对Access数据库中的各项进行分类汇总~然后再生成一个新的数据库显示结果或直接在原数据库文件中生成一条?~

例如:apple     1
          orange   2
          orange   2
          apple      3
          orange    2

变成   apple    4
            orange  6



谢谢!

作者: 乱堂步   发布时间: 2009-08-17

select 品名, sum(数量) as 品种数量 from 表 group by 品名;

作者: sgrshh29   发布时间: 2009-08-17

我也知道是
strSQL ="select sum(数量)  from 表 group by 品名

然后把他放在Command1_Click()中

但是如何把分类汇总的结果储存起来生成新的文件或新的记录呢~?

谢谢

作者: 乱堂步   发布时间: 2009-08-17

生成一个新的表(汇总表)

select 品名, sum(数量) as 品种数量 into 汇总表 from 表 group by 品名;

作者: sgrshh29   发布时间: 2009-08-17

首先谢谢LS的帮忙~

我这里用的是Access97的文件~

Private Sub Command1_Click()
            'insert into database
        Dim strSQL As String
        Dim strSQL1 As Long

        Dim strErr As String
        Dim iRet As String
        
Dim rs As New ADODB.Recordset


            iRet = SQL_Connect1(App.Path & "WorkTime.mdb", strErr)
            iRet = SQL_Open1(strErr)


strSQL = "select   Sum(Time)  from Data group by Task"

End Sub

这里和原数据库的连接已经建立好了~你这里汇总表的文件连接在哪里进行定义呢?~
新增一个表是新增一个文件吗?~应该怎么写呢~谢谢~

作者: 乱堂步   发布时间: 2009-08-17

你在哪里操作,是在这个Access97文件中?还是在其它位置操作这个Access97数据库?

作者: sgrshh29   发布时间: 2009-08-17

用VB操作Access数据库~

作者: 乱堂步   发布时间: 2009-08-17

一般做法,在vb中创建一个ado,连接到access数据库.定义一个sql字符串,用ado执行这个字符串,就可以得到你要的结果了.剩下的问题就是如何把这个结果显示出来让自己可以看到这个结果.
从你的描述中,看不出你究竟想要做什么.你是要得到那个结果显示在vb中?还是要把那个结果生成新的表?还是生成什么其它文件(比如txt、word、excel等)?
下面的实例给出一个将查询结果直接打印到vb的窗体上,文件下载后解压后,vb和mdb需在同一个目录下。
QK.rar (7.15 KB)
QK.rar (7.15 KB)
下载次数: 55
2009-8-18 14:33


[ 本帖最后由 sgrshh29 于 2009-8-18 14:33 编辑 ]

作者: sgrshh29   发布时间: 2009-08-18

谢谢sgrshh29 !急需要这方面的学习资料。

作者: nowarmy   发布时间: 2009-09-18

急需要这方面的学习资料。

作者: zss427607   发布时间: 2009-09-18

引用:
原帖由 sgrshh29 于 2009-8-18 10:16 发表
一般做法,在vb中创建一个ado,连接到access数据库.定义一个sql字符串,用ado执行这个字符串,就可以得到你要的结果了.剩下的问题就是如何把这个结果显示出来让自己可以看到这个结果.
从你的描述中,看不出你究竟想要做 ...
在你的基础上来一个Excel输出的

附件

SQL答题.rar(11.5 KB)

2009-12-14 23:23, 下载次数: 7

作者: Scarlett_88   发布时间: 2009-12-14

再简化一下:

Dim cnn As Object
Dim rst As Object
Dim xls As New Excel.Application

Private Sub Command1_Click()
Dim strsql As String
Dim n As Integer
strsql = "select 店名, sum(加工费) AS 加工费 from 加工统计 group by 店名"
rst.Open strsql, cnn, 3, 3
xls.Workbooks.Open App.Path & "\统计结果.XLS"
xls.Visible = True
xls.Sheets(1).Cells(1, 1) = "店名"
xls.Sheets(1).Cells(1, 2) = "金额合计"
xls.Sheets(1).Cells(2, 1).CopyFromRecordset rst
End Sub

Private Sub Form_Load()
Set cnn = CreateObject("adodb.connection")
Set rst = CreateObject("adodb.recordset")
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\加工统计_be.mdb"

End Sub

Private Sub Form_Unload(Cancel As Integer)
rst.Close
Set xls = Nothing
Set rst = Nothing
Set cnn = Nothing
End Sub

作者: Scarlett_88   发布时间: 2009-12-14

用一句
xls.Sheets(1).Range("A1:B1") = Application.Transpose(Array("店名", "金额合计"))
来代替
xls.Sheets(1).Cells(1, 1) = "店名"
xls.Sheets(1).Cells(1, 2) = "金额合计"

作者: Scarlett_88   发布时间: 2009-12-14

学习一下,感谢分享。

作者: monkeywyq   发布时间: 2010-10-26

新手来学习一下,多谢分享。

作者: monkeywyq   发布时间: 2010-10-26

热门下载

更多