论文部分内容阅读
【摘要】本文主要论述了以Microsoft Visual Basic 6.0中文版为开发平台开发《桩号标高表生成器》的过程以有与office联合的应用实例。
【关键词】VB6.0;excelaccess 桩号标高表;ADO
微软公司的Office系列办公软件相信大家已是众所周知,其中Excel强大的统计功能、Access功能完备的数据处理能力深受众多用户所喜爱。Visual Bsaic更是微软公司又一有力的产品,它简单易学,在Windows编程中的应用十分广泛。
本文通过"桩号标高表生成器"这个软件实例的介绍,来讨论VB与Excel及Access的联合运用。此软件是笔者为一铁路系统工作的朋友专门编写的。
一、软件的功能介绍
本软件的主要功能是生成铁路路基设计软件RCAD的前处理文件"桩号标高表"。具体实现就是从"桩号标高表"Access数据库中读出设计断面所需要的标高,然后填充到对应的Excel文件相应的单元格中。此项工作,长期以来一直是人工从数据库桩号标高表中读出设计断面的标高,然后手工填充到Excel单元格中的,既费时又费力,以前一条300km的铁路,桩号标高表的生成需要2~3天,现在几分钟就可以实现桩号标高表的生成。本软件通过vb与office的结合应用,可以显著的提高工作效率。
二、主要编程软件及技术介绍
(一)Visual Basic 6.0做为编程语言
在程序设计语言层出不穷的今天,随着数据库的应用开发,Visual Basic成为很多程序员的首选编程语言,因为Visual Basic易学、易于调试,可以比其它编程语言更迅速的建立复杂的应用程序。些外,Visual Basic中内置了许多用于开发数据库应用程序的专业化支持。使用Visual Basic不仅可以开发传统的面向表格的数据库应用程序,还可以开发应用于Web Server的后台数据库,比使用传统的Perl脚本和Active Server Pages效率都要高。Visual Basic 6.0中文版还支持用户自己开发ActiveX控件和制作ActiveX文档。鉴于VB以上所述的各项优点,决定选择Visual Basic作为本系统的开发软件。
(二)ADO技术
Active Data Objects(ADO)是Microslft公司应用Universal Data Access一种方式。实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库连接口相连。用户可以使用任何一种ODBC数据源,即不仅适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。
三、软件的使用说明
上图为本软件的用户使用界面,用户只要选择相对应的Access数据库,如下图:
然后选择需要填充的Excel数据表,如下图:
在使用过程中,必须把Access数据库和Excel数据表都选择好,否则,软件会给出"文件不能为空"的提示。最后只要按一个"确定"按钮,软件就会自动查找Access中需要的数据,填充到Excel表格中去,并打开此Excel文件,用户可以根据自己的需要进行操作。
四、 软件源代码及注释
Private Sub Command1_Click()'选择Access数据库按钮所执行代码
Dim strOpen As String
With CommonDialog1
.FileName = ""
.Filter = " access文件(*.mdb)|*.mdb|所有文件(*.*)|*.*"
.DialogTitle = "打开数据库文件"
.ShowOpen
If .FileName = "" Then Exit Sub
strOpen = .FileName
If Dir$(strOpen) <> "" Then
Text1.Text = Trim(strOpen)
Else
MsgBox "文件不存在!", vbOKOnly, "打开数据库文件"
End If
End With
End Sub
Private Sub Command2_Click()'选择Excel数据表按钮所执行代码
Dim strOpen As String
With CommonDialog1
.FileName = ""
.Filter = " excel文件(*.xls)|*.xls|所有文件(*.*)|*.*"
.DialogTitle = "打开excel文件"
.ShowOpen
If .FileName = "" Then Exit Sub
strOpen = .FileName
If Dir$(strOpen) <> "" Then
Text2.Text = Trim(strOpen)
Else
MsgBox "文件不存在!", vbOKOnly, "打开excel文件"
End If
End With
End Sub
Private Sub Command3_Click()'"确定"命令按钮所执行的代码
If Trim(Text1.Text) <> "" And Trim(Text2.Text) <> "" Then
If Dir$(Trim(Text1.Text)) <> "" Then
If Dir$(Trim(Text2.Text)) <> "" Then
'以下代码完成填充
Set cn = New ADODB.Connection
strCn = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Trim(Text1.Text) & ";Persist Security Info=False"
cn.Open strCn
Dim xlApp As Excel.Application '定义EXCEL类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlsheet As Excel.Worksheet '定义工作表类
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.Visible = True '设置EXCEL可见
Set xlBook = xlApp.Workbooks.Open(Trim(Text2.Text)) '打开EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
xlsheet.Activate '激活工作表
Dim rs As New ADODB.Recordset
Dim i
i = 1
Dim sqltxt As String
While (True)
sqltxt = "select 值 from 桩号标高表 where 里程>=" & xlsheet.Range("a" & i) - 1 & "and 里程<=" & xlsheet.Range("a" & i) + 1
rs.Open sqltxt, cn, adOpenStatic, adLockBatchOptimistic
If rs.RecordCount <> 0 Then
xlsheet.Range("b" & i) = rs.Fields(0)
Else
xlsheet.Range("b" & i) = 9999
End If
rs.Close
i = i + 1
If Trim(xlsheet.Range("a" & i)) = "" Then
Exit Sub
End If
Wend
'以上代码完成填充
End If
End If
Else
MsgBox "输入文件不能为空!", vbOKOnly
End If
End Sub
Private Sub Command4_Click()'"退出"命令按钮所执行的代码
Unload Me
End Sub
文中的所有程序在Visual Bsaic6.0中文专业版及Office2000中文版中调试通过。
责任编辑:王轶萌
【关键词】VB6.0;excelaccess 桩号标高表;ADO
微软公司的Office系列办公软件相信大家已是众所周知,其中Excel强大的统计功能、Access功能完备的数据处理能力深受众多用户所喜爱。Visual Bsaic更是微软公司又一有力的产品,它简单易学,在Windows编程中的应用十分广泛。
本文通过"桩号标高表生成器"这个软件实例的介绍,来讨论VB与Excel及Access的联合运用。此软件是笔者为一铁路系统工作的朋友专门编写的。
一、软件的功能介绍
本软件的主要功能是生成铁路路基设计软件RCAD的前处理文件"桩号标高表"。具体实现就是从"桩号标高表"Access数据库中读出设计断面所需要的标高,然后填充到对应的Excel文件相应的单元格中。此项工作,长期以来一直是人工从数据库桩号标高表中读出设计断面的标高,然后手工填充到Excel单元格中的,既费时又费力,以前一条300km的铁路,桩号标高表的生成需要2~3天,现在几分钟就可以实现桩号标高表的生成。本软件通过vb与office的结合应用,可以显著的提高工作效率。
二、主要编程软件及技术介绍
(一)Visual Basic 6.0做为编程语言
在程序设计语言层出不穷的今天,随着数据库的应用开发,Visual Basic成为很多程序员的首选编程语言,因为Visual Basic易学、易于调试,可以比其它编程语言更迅速的建立复杂的应用程序。些外,Visual Basic中内置了许多用于开发数据库应用程序的专业化支持。使用Visual Basic不仅可以开发传统的面向表格的数据库应用程序,还可以开发应用于Web Server的后台数据库,比使用传统的Perl脚本和Active Server Pages效率都要高。Visual Basic 6.0中文版还支持用户自己开发ActiveX控件和制作ActiveX文档。鉴于VB以上所述的各项优点,决定选择Visual Basic作为本系统的开发软件。
(二)ADO技术
Active Data Objects(ADO)是Microslft公司应用Universal Data Access一种方式。实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库连接口相连。用户可以使用任何一种ODBC数据源,即不仅适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。
三、软件的使用说明
上图为本软件的用户使用界面,用户只要选择相对应的Access数据库,如下图:
然后选择需要填充的Excel数据表,如下图:
在使用过程中,必须把Access数据库和Excel数据表都选择好,否则,软件会给出"文件不能为空"的提示。最后只要按一个"确定"按钮,软件就会自动查找Access中需要的数据,填充到Excel表格中去,并打开此Excel文件,用户可以根据自己的需要进行操作。
四、 软件源代码及注释
Private Sub Command1_Click()'选择Access数据库按钮所执行代码
Dim strOpen As String
With CommonDialog1
.FileName = ""
.Filter = " access文件(*.mdb)|*.mdb|所有文件(*.*)|*.*"
.DialogTitle = "打开数据库文件"
.ShowOpen
If .FileName = "" Then Exit Sub
strOpen = .FileName
If Dir$(strOpen) <> "" Then
Text1.Text = Trim(strOpen)
Else
MsgBox "文件不存在!", vbOKOnly, "打开数据库文件"
End If
End With
End Sub
Private Sub Command2_Click()'选择Excel数据表按钮所执行代码
Dim strOpen As String
With CommonDialog1
.FileName = ""
.Filter = " excel文件(*.xls)|*.xls|所有文件(*.*)|*.*"
.DialogTitle = "打开excel文件"
.ShowOpen
If .FileName = "" Then Exit Sub
strOpen = .FileName
If Dir$(strOpen) <> "" Then
Text2.Text = Trim(strOpen)
Else
MsgBox "文件不存在!", vbOKOnly, "打开excel文件"
End If
End With
End Sub
Private Sub Command3_Click()'"确定"命令按钮所执行的代码
If Trim(Text1.Text) <> "" And Trim(Text2.Text) <> "" Then
If Dir$(Trim(Text1.Text)) <> "" Then
If Dir$(Trim(Text2.Text)) <> "" Then
'以下代码完成填充
Set cn = New ADODB.Connection
strCn = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Trim(Text1.Text) & ";Persist Security Info=False"
cn.Open strCn
Dim xlApp As Excel.Application '定义EXCEL类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlsheet As Excel.Worksheet '定义工作表类
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.Visible = True '设置EXCEL可见
Set xlBook = xlApp.Workbooks.Open(Trim(Text2.Text)) '打开EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
xlsheet.Activate '激活工作表
Dim rs As New ADODB.Recordset
Dim i
i = 1
Dim sqltxt As String
While (True)
sqltxt = "select 值 from 桩号标高表 where 里程>=" & xlsheet.Range("a" & i) - 1 & "and 里程<=" & xlsheet.Range("a" & i) + 1
rs.Open sqltxt, cn, adOpenStatic, adLockBatchOptimistic
If rs.RecordCount <> 0 Then
xlsheet.Range("b" & i) = rs.Fields(0)
Else
xlsheet.Range("b" & i) = 9999
End If
rs.Close
i = i + 1
If Trim(xlsheet.Range("a" & i)) = "" Then
Exit Sub
End If
Wend
'以上代码完成填充
End If
End If
Else
MsgBox "输入文件不能为空!", vbOKOnly
End If
End Sub
Private Sub Command4_Click()'"退出"命令按钮所执行的代码
Unload Me
End Sub
文中的所有程序在Visual Bsaic6.0中文专业版及Office2000中文版中调试通过。
责任编辑:王轶萌