金融科技创新与应用:如何实现数据统计功能(VB)?

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 21:24:29
VB数据库问题:
单击一个按钮后,就能对某字段的数值进行统计,如成绩总和,平均值。 统计对象是已经筛选出来的几个记录,即显示出来的记录,并不是整个表的记录。
给我写代码出来,什么都不认,就认代码!!!

Sub FillColumn(fg As vsFlexGrid, ByVal c As Long, ByVal t As String, ByVal s As String)

Dim r&, i&, cnt&
ReDim lst(0) As String

' build list
cnt = 0
i = InStr(s, "|")
While i > 0
lst(cnt) = left(s, i - 1)
s = Mid(s, i + 1)
cnt = cnt + 1
ReDim Preserve lst(cnt) As String
i = InStr(s, "|")
Wend
lst(cnt) = s

' set values
fg.Cell(flexcpText, 0, c) = t
For r = fg.FixedRows To fg.Rows - 1
i = (Rnd() * 1000) Mod (cnt + 1)
fg.Cell(flexcpText, r, c) = lst(i)
Next

' do an autosize
fg.AutoSize c, , , 300
End Sub

FillColumn hfxgrid ""Proposals|Demos|Social|Trips|Projects""

或者试下另一种方法:

sql = "select mobilename,mobiletype,count(*) " & _
"as sellcount,count(mobilename)/ ( select count(*) " & _
" from mobile where sellplace<>'其他' and buydate between #" & _
DTPFromDate.Value & "# and #" & DTPTodate.Value & "#)" & _
" as sellpercent " & _
"from mobile where buydate between #" & _
DTPFromDate.Value & "# and #" & DTPTodate.Value & "#" & _
"group by mobilename,mobiletype " & _
" order by count(*) desc "
统计好了用grid控件显示就好

在Excel 中,有时需要统计表中相同数据出现的次数,如果对Excel 的函数运用不熟悉,我们可以巧妙地通过“查找与替换”来实现数据的简单统计。

如需统计人员花名册中性别为“男”的人数,可选中性别所在列,点击“编辑”菜单下的“替换”项。在“查找内容”中填写“男”,“替换为”中填上“A”,选择“全部替换”,此时Excel会弹出菜单提示“完成了X处被替换”,这个X即为统计出的男性人数。

再选择“编辑”菜单下“撤消”功能,使原单元格数据恢复。

另附陈秀峰的补充如下:

1、此法对于Excel2000及以前的版本无效(没有替换完成的提示框出现)。

2、如果将文中的“A”换成“男”,即在“替换为”中仍然填上“男”,则免去后面的“撤销”操作,效果更妙。

3、此法可以移植到Word等其他Office系列软件中。

公司网址是:www.2zhe.com

熟悉Excel 2000/2002的用户都知道,当输入的数字超过11位后,Excel会智能地将它转换成指数形式的科学计数法,有的时候(如在输入身份证号码、手机号码时)并不需要这一自动转换功能,只要在输入数字时在前面加上一个单撇号',这样就可以输入任意长的数字了。

但是,如果在已有的Excel文档(或是用一些档案管理系统生成的Excel文档)中存在上千条用指数形式的科学计数法表示的记录(这种记录以身份证号码居多),难道我们不厌其烦地在一条一条的记录前面加单撇号"'"吗?是不是有其他更好的办法呢?利用Excel中提供的VBA(Visual Basic for Application)编程功能,我们可以很容易地解决这个问题。

1、在Excel 2000/2002中输入Visual Basic程序。打开Excel 2000/2002,选择"工具→宏→Visual Basic编辑器"选项,进入Visual Basic编辑器,输入如下的代码(图1):

图 1

Sub CorrectionDigital??
Dim i? j As Integer
Dim Row? Col As Integer
Row = Selection.Rows.Count '选中的行数
Col = Selection.Columns.Count '选中的列数
For i = 1 To Col
For j = 1 To Row
ActiveCell.Formula = 〃'〃 + ActiveCell.Formula '转换一个单元格
ActiveCell.Offset?1? 0?.Select '单元格下移一个位置
Next j
ActiveCell.Offset?-Row? 1?.Select '本列已经转换完成,转到下一列
Next i
ActiveCell.Offset?0? -Col?.Select '回到起始位置
End Sub

2、在工具栏添加自定义按钮。关闭Visual Basic编辑器,回到Excel,选择"工具→自定义"命令,单击自定义对话框的"命令"选项,选择"宏",将"自定义按钮"拖到Excel的工具栏,如图2所示。

图 2

在Excel 中,有时需要统计表中相同数据出现的次数,如果对Excel 的函数运用不熟悉,我们可以巧妙地通过“查找与替换”来实现数据的简单统计。

如需统计人员花名册中性别为“男”的人数,可选中性别所在列,点击“编辑”菜单下的“替换”项。在“查找内容”中填写“男”,“替换为”中填上“A”,选择“全部替换”,此时Excel会弹出菜单提示“完成了X处被替换”,这个X即为统计出的男性人数。

再选择“编辑”菜单下“撤消”功能,使原单元格数据恢复。

另附陈秀峰的补充如下:

1、此法对于Excel2000及以前的版本无效(没有替换完成的提示框出现)。

2、如果将文中的“A”换成“男”,即在“替换为”中仍然填上“男”,则免去后面的“撤销”操作,效果更妙。

3、此法可以移植到Word等其他Office系列软件中。

心浮气躁是每个人都会经历的一种情感
老是发火对自己也没有好处

每天都与女友吵架甚至打架
恋爱中的人难免急躁
我的个人观点就算在怎么气也不能打女人
女人是要拿来疼爱的

容易生气
先从生理上调节多吃些下火气的食品
比如水果,蔬菜,
银耳莲子汤就更适合冬天喝(浓浓的汤还可以暖胃)
再则就要从心理上进行调节
平时多做些休闲养生的运动
就如饭后多去散步多听听缓慢的音乐
让自己的精神放个假
就可以改掉急躁的毛病了

熟悉Excel 2000/2002的用户都知道,当输入的数字超过11位后,Excel会智能地将它转换成指数形式的科学计数法,有的时候(如在输入身份证号码、手机号码时)并不需要这一自动转换功能,只要在输入数字时在前面加上一个单撇号',这样就可以输入任意长的数字了。

但是,如果在已有的Excel文档(或是用一些档案管理系统生成的Excel文档)中存在上千条用指数形式的科学计数法表示的记录(这种记录以身份证号码居多),难道我们不厌其烦地在一条一条的记录前面加单撇号"'"吗?是不是有其他更好的办法呢?利用Excel中提供的VBA(Visual Basic for Application)编程功能,我们可以很容易地解决这个问题。

1、在Excel 2000/2002中输入Visual Basic程序。打开Excel 2000/2002,选择"工具→宏→Visual Basic编辑器"选项,进入Visual Basic编辑器,输入如下的代码(图1):

图 1

Sub CorrectionDigital??
Dim i? j As Integer
Dim Row? Col As Integer
Row = Selection.Rows.Count '选中的行数
Col = Selection.Columns.Count '选中的列数
For i = 1 To Col
For j = 1 To Row
ActiveCell.Formula = 〃'〃 + ActiveCell.Formula '转换一个单元格
ActiveCell.Offset?1? 0?.Select '单元格下移一个位置
Next j
ActiveCell.Offset?-Row? 1?.Select '本列已经转换完成,转到下一列
Next i
ActiveCell.Offset?0? -Col?.Select '回到起始位置
End Sub

2、在工具栏添加自定义按钮。关闭Visual Basic编辑器,回到Excel,选择"工具→自定义"命令,单击自定义对话框的"命令"选项,选择"宏",将"自定义按钮"拖到Excel的工具栏,如图2所示。

图 2

在Excel 中,有时需要统计表中相同数据出现的次数,如果对Excel 的函数运用不熟悉,我们可以巧妙地通过“查找与替换”来实现数据的简单统计。

如需统计人员花名册中性别为“男”的人数,可选中性别所在列,点击“编辑”菜单下的“替换”项。在“查找内容”中填写“男”,“替换为”中填上“A”,选择“全部替换”,此时Excel会弹出菜单提示“完成了X处被替换”,这个X即为统计出的男性人数。

再选择“编辑”菜单下“撤消”功能,使原单元格数据恢复。

另附陈秀峰的补充如下:

1、此法对于Excel2000及以前的版本无效(没有替换完成的提示框出现)。

2、如果将文中的“A”换成“男”,即在“替换为”中仍然填上“男”,则免去后面的“撤销”操作,效果更妙。

3、此法可以移植到Word等其他Office系列软件中。

'首先在窗体上绘一个adodc1

'代码:

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path & "\dbname.mdb;Persist Security Info=False" '指定数据源,在此以mdb格式为例
mysql = "select iiiii,sum(要求和的字段名) as fld1,max(要求最值的字段名) as fld2 from 表名 where <条件> group by iiiii" 'iiiii为分组条件,如统计所有学生某课程的总分数,则iiiii为课程号
Adodc1.RecordSource = mysql
Adodc1.Refresh '然后用grid控件显示adodc1的内容即可