您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-01 原文发表:2007-08-31 人气:17 来源:未知

本文章共6031字,分4页,当前第1页,快速翻页:
 
  Visual Basic 5.0中的简单ActiveX DLL,从而使用户从Northwind数据库中获得一系列表单。只要选择表单,就可以移植包含ACCESS数据的office/9.shtml' target='_blank' class='article'>Excel工作表。

逆@风@者
  Excel工作表,该表包含菜单项的定制代码,从而初始化ActiveX DLL。可执行程序,该程序可以发送上述工作簿,并可检查公用资源中ActiveX DLL的新版本,如果发现存在新版本,则拷贝并注册该DLL到用户的机器。

  该方法的优点

  我因为以下几个原因而喜欢该方法。一旦ActiveX DLL编译成功,它可以被任何ActiveX的兼容宿主程序调用,这意味着你能够在Microsoft Word、Internet Explorer或者大量的应用程序中使用它们。

  不同于 Excel中的VBA编码,那些DLL一旦编译成功就再也不能为用户所修改,如果你想做一些与Excel相似的工作,就必须创建并发布相应的附加项。正如前面讨论的那样,只要进行简单的Visual Basic编程,用户机器上的DLL就能够轻易地被替换。这意味着一旦故障被发现,或者新版本开发成功,用户就可以直接升级,而再也不必经受安装整个应用程序的痛苦。

  该方法的不足

  最大的不足是需要在兼容宿主程序上调用该ActiveX DLL,如果你要移植Excel工作表或Word文档,那将不成问题。如果你要在自己编制的可执行程序或不可视的兼容宿主程序上调用该DLL,那么控制将变得比较困难,换句话说,此时采用标准的可执行程序作为接口是不适合的,最好的方法是为另一个应用程序提供接口

  设计DLL

  为了创建接口,打开Visual Basic并创建一个标准的可执行项目,并将他存储在你所选定的ExcelDLL文件夹中。为了加入Excel引用,点击Project>References和Microsoft Excel 8.0 Object Library。双击Project Explorer中的缺省Form,并将之重新命名为frmMain,设定Form的标题为Open Northwind Tables,并且增加具有下列属性的控件:

  为了创建ACCESS数据库和Excel电子表格之间的接口,增加列表1的代码到Form中。

  列表1:设计DLL,增加这些代码到Form中以创建接口

注释:Declare the new class
Dim mcls_clsExcelWork As New clsExcelWork

Private Sub cmdOpenTable_Click()
注释:call the CreateWorksheet method of the clsExcelWork
注释:class.
mcls_clsExcelWork.CreateWorksheet
End Sub

Private Sub Form_Load()
注释:call the LoadListboxWithTables method. mcsl_clsExcelWork.LoadListboxWithTables
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set mcls_clsExcelWork = Nothing
End Sub

Private Sub lstTables_DblClick()
Mcls_clsExcelWork.CreateWorksheet
End Sub

  增加标准的模块到项目中,并将下列代码加入到该模块中:

Sub Main()
End Sub

关闭该模块。

  如果你从未创建过类模块,那么你就要认真对待,clsExcelWork是一个简单的类,工作一点儿也不困难。增加一个新的模块到项目中,并将之命名为clsExcelWork,同时在声明段中加入该类(列表2)。

  列表2:clsExcelWork-增加新的类模块到项目中,然后在声明段中加入新类的代码。

Option Explicit
Private xlsheetname As Excel.Worksheet

Private xlobj As Excel.Workbook
Private ExcelWasNotRunning As Boolean

Private Declare Function FindWindow Lib "user32" Alias _
     "FindWindowA" (ByVal lpClassName As String, ByVal _
     lpWindowName As Long) As Long

Private Declare Function SendMessage Lib "user32" Alias _
     "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
     ByVal wParam As Long, ByVal lParam As Long) As Long
创建下述方法:

Public Sub RunDLL()
 

本文章更多内容1 - 2 - 3 - 4 - 下一页>>
相关文章

VB驱动pcAnyWhere进行文件传输
基于VB的通用折行打印程序
利用VB进行多媒体程序设计初步
怎样使用有密码的 Access 数据库
Visual Basic影音控制
熟悉VB的集成开发环境
Visual Basic 工 程 管 理
VB取磁盘序列号卷标和文件系统类型
VB中使窗体右上角的X按钮失效
Visual Basic动画编程技术
怎样关闭一个正在运行的程序
VB COM基础讲座之编译的实例选项
解决Visual Basic非正常退出一例
在VB中调用CHM 帮助的几种方法
如何使用 VB 编写自动反安装的程序
用VB 设计条形码轻印刷系统
VB应用程序中实现“查找和替换”功能
显示多媒体信息
Hierarchical FlexGrid 控件
在VB中操纵OLE服务器应用程序

相关评论


本文章所属分类:首页 VB

  热门关键字: