李洪丹
摘要:阐述了在VB程序设计中应用ADO数据连接控件开发“专业统计小程序”的关键技术与实现方法。
关键词:Visual Basic6.0程序设计;Excel数据统计;工作效率
中图分类号:TP311.11文献标识码:A
文章编号:1005-913X(2014)07-0212-02
一、正文
在日常的工作中,经常要根据Office办公软件Excel电子表格统计本学院学生生源地和专业人数,有的时候Excel本身提供的一些数据统计分析基础功能并不能满足我们的需求,基于此应用,笔者利用Microsoft Visual Basic 6.0 企业版作为开发平台,设计出一款应用小程序用于根据专业名称统计专业学生数和根据身份证号字段判断学生出生地来满足工作的需要。如图所示,EXCEL的文件名为55555.XLS,是从学信网中下载的学生基础数据。
统计各专业的人数,以往的做法是利用EXCEL菜单栏中“数据”选项中的“自动筛选”,分专业名称来筛选,找到一个手工记录一个,费时费力。
二、算法描述
连接EXCEL数据库文件后,定义两个数据集对象RS和RST,筛选专业名称将结果存储到数据集对象RS中。利用两层嵌套循环语句,用MSFLEXGRUD控件绑定数据集,显示结果。将结果导出含有三个字段的EXCEL中。
三、具体实现
在Microsoft Visual Basic 6.0 企业版开发平台中,新建一个工程,添加一个窗体,将“工具箱”中MSFLEXGRUD控件和按钮控件拖入窗体中。因为数据库文件是EXCEL,所以要勾选工程的引用“Microsoft Excel 11.0 Objects 2.0 Library”在窗体装载的事件中,添加连接数据库EXCEL字符串。
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=55555.xls;Extended Properties='Excel 8.0;HDR=Yes'"
四、主要实现代码
Dim Con As New ADODB.Connection//定义Con为数据库连接对象
Dim RS As New ADODB.Recordset//定义RS为记录集对象
DIM RST AS NEW ADODB.Recordst//定义RST为记录集对象
Dim i As Integer//定义整形变量i
Dim j As Integer //定义整形变量j
Dim hlj As String//定义字符串变量hlj
Private Sub Form_Load()
//连接数据库
Grid.FormatString = "序号| 专业 | 专业人数 "
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=55555.xls;Extended Properties='Excel 8.0;HDR=Yes'"
Con.Open
RS.Open "select distinct ZYMC from [sheet1$]", Con, adOpenKeyset, adLockOptimistic
j = RS.RecordCount
RS.MoveFirst
For i = 0 To j - 1
Dim rowi As Integer
Do While Not RS.EO
rowi = rowi + 1
hlj = "select count(*) from [sheet1$] where ZYMC = '" & RS.Fields("ZYMC") & "'"
Set RST = Con.Execute(hlj)
Grid.ColAlignment(0) = 4 '字段数据居中显示
Grid.ColAlignment(1) = 4
Grid.ColAlignment(2) = 4
Grid.TextMatrix(rowi, 0) = rowi
Grid.TextMatrix(rowi, 1) = RS.Fields("ZYMC")
If RST(0) <> 0 Then Grid.TextMatrix(rowi, 2) = RST(0) Else Grid.TextMatrix(rowi, 2) = 0
RS.MoveNext
Grid.Rows = Grid.Rows + 1
Loop
Next i
Label1.Caption = "学生总数:" & RS.RecordCount
Set RST = Nothing //将记录集RST对象置空
Set RS = Nothing //将记录集RS对象置空
Con.Close
End Sub
单击导出EXCEL按钮,导出新的EXCEL。
Private Sub Command1_Click()
Dim ii As Long
Dim jj As Long
'创建一个Application对象
Dim liexcel As Excel.Application
Set liexcel = New Excel.Application
'绑定
Set liexcel = CreateObject("Excel.Application")
'向Excel中写入数据
Dim libookAs Excel.Workbook
Dim lisheetAs Excel.Worksheet
Set libook = liexcel.Workbooks.Add
liexcel.SheetsInNewWorkbook = 1
'设置为可见
liexcel.Visible = True
'将控件MSHFlexGrid显示的内容写入Excel中
With liexcel.ActiveSheet
For ii = 1 To Grid.Rows
For jj = 1 To Grid.Cols
.Cells(ii, jj).Value = "" & Format$(Grid.TextMatrix(ii - 1, jj - 1))
Next jj
End With
'清空并关闭
Set lisheet = Nothing
Set libook = Nothing
Set liexcel = Nothing
End Sub
实现效果如图
五、结束语
通过开发这个小程序提高了工作人员的工作效率,避免了繁重的手工统计费时费力,减轻了工作人员的工作量,并且提高了数据的准确性,也提高了工作效率,但不足之处是程序算法的复杂度比较高。
参考文献:
[1] 姜彦伟.Excel中的VBA程序设计[J] .2012.
[2] 崔五子.界面设计与Visual Basic(第2版)[M].北京:清华大学出社,2011.
[责任编辑:兰欣卉]
摘要:阐述了在VB程序设计中应用ADO数据连接控件开发“专业统计小程序”的关键技术与实现方法。
关键词:Visual Basic6.0程序设计;Excel数据统计;工作效率
中图分类号:TP311.11文献标识码:A
文章编号:1005-913X(2014)07-0212-02
一、正文
在日常的工作中,经常要根据Office办公软件Excel电子表格统计本学院学生生源地和专业人数,有的时候Excel本身提供的一些数据统计分析基础功能并不能满足我们的需求,基于此应用,笔者利用Microsoft Visual Basic 6.0 企业版作为开发平台,设计出一款应用小程序用于根据专业名称统计专业学生数和根据身份证号字段判断学生出生地来满足工作的需要。如图所示,EXCEL的文件名为55555.XLS,是从学信网中下载的学生基础数据。
统计各专业的人数,以往的做法是利用EXCEL菜单栏中“数据”选项中的“自动筛选”,分专业名称来筛选,找到一个手工记录一个,费时费力。
二、算法描述
连接EXCEL数据库文件后,定义两个数据集对象RS和RST,筛选专业名称将结果存储到数据集对象RS中。利用两层嵌套循环语句,用MSFLEXGRUD控件绑定数据集,显示结果。将结果导出含有三个字段的EXCEL中。
三、具体实现
在Microsoft Visual Basic 6.0 企业版开发平台中,新建一个工程,添加一个窗体,将“工具箱”中MSFLEXGRUD控件和按钮控件拖入窗体中。因为数据库文件是EXCEL,所以要勾选工程的引用“Microsoft Excel 11.0 Objects 2.0 Library”在窗体装载的事件中,添加连接数据库EXCEL字符串。
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=55555.xls;Extended Properties='Excel 8.0;HDR=Yes'"
四、主要实现代码
Dim Con As New ADODB.Connection//定义Con为数据库连接对象
Dim RS As New ADODB.Recordset//定义RS为记录集对象
DIM RST AS NEW ADODB.Recordst//定义RST为记录集对象
Dim i As Integer//定义整形变量i
Dim j As Integer //定义整形变量j
Dim hlj As String//定义字符串变量hlj
Private Sub Form_Load()
//连接数据库
Grid.FormatString = "序号| 专业 | 专业人数 "
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=55555.xls;Extended Properties='Excel 8.0;HDR=Yes'"
Con.Open
RS.Open "select distinct ZYMC from [sheet1$]", Con, adOpenKeyset, adLockOptimistic
j = RS.RecordCount
RS.MoveFirst
For i = 0 To j - 1
Dim rowi As Integer
Do While Not RS.EO
rowi = rowi + 1
hlj = "select count(*) from [sheet1$] where ZYMC = '" & RS.Fields("ZYMC") & "'"
Set RST = Con.Execute(hlj)
Grid.ColAlignment(0) = 4 '字段数据居中显示
Grid.ColAlignment(1) = 4
Grid.ColAlignment(2) = 4
Grid.TextMatrix(rowi, 0) = rowi
Grid.TextMatrix(rowi, 1) = RS.Fields("ZYMC")
If RST(0) <> 0 Then Grid.TextMatrix(rowi, 2) = RST(0) Else Grid.TextMatrix(rowi, 2) = 0
RS.MoveNext
Grid.Rows = Grid.Rows + 1
Loop
Next i
Label1.Caption = "学生总数:" & RS.RecordCount
Set RST = Nothing //将记录集RST对象置空
Set RS = Nothing //将记录集RS对象置空
Con.Close
End Sub
单击导出EXCEL按钮,导出新的EXCEL。
Private Sub Command1_Click()
Dim ii As Long
Dim jj As Long
'创建一个Application对象
Dim liexcel As Excel.Application
Set liexcel = New Excel.Application
'绑定
Set liexcel = CreateObject("Excel.Application")
'向Excel中写入数据
Dim libookAs Excel.Workbook
Dim lisheetAs Excel.Worksheet
Set libook = liexcel.Workbooks.Add
liexcel.SheetsInNewWorkbook = 1
'设置为可见
liexcel.Visible = True
'将控件MSHFlexGrid显示的内容写入Excel中
With liexcel.ActiveSheet
For ii = 1 To Grid.Rows
For jj = 1 To Grid.Cols
.Cells(ii, jj).Value = "" & Format$(Grid.TextMatrix(ii - 1, jj - 1))
Next jj
End With
'清空并关闭
Set lisheet = Nothing
Set libook = Nothing
Set liexcel = Nothing
End Sub
实现效果如图
五、结束语
通过开发这个小程序提高了工作人员的工作效率,避免了繁重的手工统计费时费力,减轻了工作人员的工作量,并且提高了数据的准确性,也提高了工作效率,但不足之处是程序算法的复杂度比较高。
参考文献:
[1] 姜彦伟.Excel中的VBA程序设计[J] .2012.
[2] 崔五子.界面设计与Visual Basic(第2版)[M].北京:清华大学出社,2011.
[责任编辑:兰欣卉]
摘要:阐述了在VB程序设计中应用ADO数据连接控件开发“专业统计小程序”的关键技术与实现方法。
关键词:Visual Basic6.0程序设计;Excel数据统计;工作效率
中图分类号:TP311.11文献标识码:A
文章编号:1005-913X(2014)07-0212-02
一、正文
在日常的工作中,经常要根据Office办公软件Excel电子表格统计本学院学生生源地和专业人数,有的时候Excel本身提供的一些数据统计分析基础功能并不能满足我们的需求,基于此应用,笔者利用Microsoft Visual Basic 6.0 企业版作为开发平台,设计出一款应用小程序用于根据专业名称统计专业学生数和根据身份证号字段判断学生出生地来满足工作的需要。如图所示,EXCEL的文件名为55555.XLS,是从学信网中下载的学生基础数据。
统计各专业的人数,以往的做法是利用EXCEL菜单栏中“数据”选项中的“自动筛选”,分专业名称来筛选,找到一个手工记录一个,费时费力。
二、算法描述
连接EXCEL数据库文件后,定义两个数据集对象RS和RST,筛选专业名称将结果存储到数据集对象RS中。利用两层嵌套循环语句,用MSFLEXGRUD控件绑定数据集,显示结果。将结果导出含有三个字段的EXCEL中。
三、具体实现
在Microsoft Visual Basic 6.0 企业版开发平台中,新建一个工程,添加一个窗体,将“工具箱”中MSFLEXGRUD控件和按钮控件拖入窗体中。因为数据库文件是EXCEL,所以要勾选工程的引用“Microsoft Excel 11.0 Objects 2.0 Library”在窗体装载的事件中,添加连接数据库EXCEL字符串。
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=55555.xls;Extended Properties='Excel 8.0;HDR=Yes'"
四、主要实现代码
Dim Con As New ADODB.Connection//定义Con为数据库连接对象
Dim RS As New ADODB.Recordset//定义RS为记录集对象
DIM RST AS NEW ADODB.Recordst//定义RST为记录集对象
Dim i As Integer//定义整形变量i
Dim j As Integer //定义整形变量j
Dim hlj As String//定义字符串变量hlj
Private Sub Form_Load()
//连接数据库
Grid.FormatString = "序号| 专业 | 专业人数 "
Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=55555.xls;Extended Properties='Excel 8.0;HDR=Yes'"
Con.Open
RS.Open "select distinct ZYMC from [sheet1$]", Con, adOpenKeyset, adLockOptimistic
j = RS.RecordCount
RS.MoveFirst
For i = 0 To j - 1
Dim rowi As Integer
Do While Not RS.EO
rowi = rowi + 1
hlj = "select count(*) from [sheet1$] where ZYMC = '" & RS.Fields("ZYMC") & "'"
Set RST = Con.Execute(hlj)
Grid.ColAlignment(0) = 4 '字段数据居中显示
Grid.ColAlignment(1) = 4
Grid.ColAlignment(2) = 4
Grid.TextMatrix(rowi, 0) = rowi
Grid.TextMatrix(rowi, 1) = RS.Fields("ZYMC")
If RST(0) <> 0 Then Grid.TextMatrix(rowi, 2) = RST(0) Else Grid.TextMatrix(rowi, 2) = 0
RS.MoveNext
Grid.Rows = Grid.Rows + 1
Loop
Next i
Label1.Caption = "学生总数:" & RS.RecordCount
Set RST = Nothing //将记录集RST对象置空
Set RS = Nothing //将记录集RS对象置空
Con.Close
End Sub
单击导出EXCEL按钮,导出新的EXCEL。
Private Sub Command1_Click()
Dim ii As Long
Dim jj As Long
'创建一个Application对象
Dim liexcel As Excel.Application
Set liexcel = New Excel.Application
'绑定
Set liexcel = CreateObject("Excel.Application")
'向Excel中写入数据
Dim libookAs Excel.Workbook
Dim lisheetAs Excel.Worksheet
Set libook = liexcel.Workbooks.Add
liexcel.SheetsInNewWorkbook = 1
'设置为可见
liexcel.Visible = True
'将控件MSHFlexGrid显示的内容写入Excel中
With liexcel.ActiveSheet
For ii = 1 To Grid.Rows
For jj = 1 To Grid.Cols
.Cells(ii, jj).Value = "" & Format$(Grid.TextMatrix(ii - 1, jj - 1))
Next jj
End With
'清空并关闭
Set lisheet = Nothing
Set libook = Nothing
Set liexcel = Nothing
End Sub
实现效果如图
五、结束语
通过开发这个小程序提高了工作人员的工作效率,避免了繁重的手工统计费时费力,减轻了工作人员的工作量,并且提高了数据的准确性,也提高了工作效率,但不足之处是程序算法的复杂度比较高。
参考文献:
[1] 姜彦伟.Excel中的VBA程序设计[J] .2012.
[2] 崔五子.界面设计与Visual Basic(第2版)[M].北京:清华大学出社,2011.
[责任编辑:兰欣卉]