浅析Visual Basic程序设计在工作中的应用

2014-09-19 20:47李洪丹
北方经贸 2014年7期
关键词:控件程序设计定义

李洪丹

摘要:阐述了在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.

[责任编辑:兰欣卉]

猜你喜欢
控件程序设计定义
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
以爱之名,定义成长
C++程序设计课程教学改革研究
使用“填表单”微信小程序 统计信息很方便
医学专业“Python程序设计”课程教学改革总结与思考
基于.net的用户定义验证控件的应用分析
定义“风格”
利用VF6.0的Timer控件实现动画效果
Spreadsheet控件在Delphi数据库系统中的编程与应用