李洪丹
摘要:闡述了在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.
[責任編輯:蘭欣卉]