大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用 ADO 连接到 Excel
创新互联凭借专业的设计团队扎实的技术支持、优质高效的服务意识和丰厚的资源优势,提供专业的网站策划、网站制作、成都网站设计、网站优化、软件开发、网站改版等服务,在成都10年的网站建设设计经验,为成都上千多家中小型企业策划设计了网站。
ADO 使用 MDAC 中以下两个 OLE DB 提供程序中的任何一个都可以连接到 Excel 数据文件。
Microsoft Jet OLE DB Provider — 或 —Microsoft OLE DB Provider for ODBC Drivers
使用 Microsoft Jet OLE DB Provider
Jet 提供程序只需要两条信息就可以连接到 Excel 数据源:路径(包括文件名),和 Excel 文件版本。
Jet 提供程序使用连接字符串
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" _
"Extended Properties=Excel 8.0;"
.Open
End With
提供程序版本:必须使用 Jet 4.0 提供程序;Jet 3.51 提供程序不支持 Jet ISAM 驱动程序。如果指定了 Jet 3.51 提供程序,在运行时会出现以下错误信息:
Couldn't find installable ISAM.
Excel 版本:对于 Excel 95 工作簿(Excel 版本 7.0),应指定 Excel 5.0;对于 Excel 97、Excel 2000 或 Excel 2002 (XP) 工作簿(Excel 版本 8.0、9.0 和 10.0),应指定 Excel 8.0 版本。
使用“数据链接属性”对话框的 Jet 提供程序
如果在应用程序中使用“ADO 数据控件”或“数据环境”,就会出现数据链接属性对话框来收集必要的连接设置。
在提供程序选项卡上,选择 Jet 4.0 提供程序;Jet 3.51 提供程序不支持 Jet ISAM 驱动程序。如果指定了 Jet 3.51 提供程序,在运行时会出现以下错误信息:
Couldn't find installable ISAM.
在连接选项卡上,浏览到工作簿文件。忽略“用户 ID”和“密码”项,因为这些不适用于 Excel 连接。(无法打开受密码保护的 Excel 文件作为数据源。)
在所有选项卡上,从列表中选择扩展属性,然后单击编辑值。输入 Excel 8.0;,用分号 (;) 将其与任何其他已有的项分隔。如果忽略此步骤,测试连接时将出现一条错误信息。这是因为如果不另行指定,Jet 提供程序期望 Microsoft Access 数据库。返回到连接选项卡,并单击测试连接。将出现一个消息框,通知测试已成功完成即可。
一定要先在VB中添加excel引用。
在工程中引用Microsoft Excel类型库: 从"工程"菜单中选择"引用"栏;选择Microsoft Excel 11.0 Object Library(EXCEL2003),然后选择"确定"。表示在工程中要引用EXCEL类型库。
调用excel的工作表中的命令按钮,代码如下:
Private Sub Command1_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet
Dim FileName, SheetName As String
FileName = "e:\data.xls" '打开的工作簿路径名称
SheetName = "sheet1" '命令按钮所在的工作表名
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(FileName) '打开已经存在的EXCEL工件簿文件
……
xlBook.Close (True) '保存并关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
end sub
要用VBA来关闭工作簿,用Workbook.Close 方法即可,而要退出Excel,则用Application.Quit 方法:\x0d\x0a\x0d\x0a关闭活动工作簿,如果工作簿有更改,提示是否保存:\x0d\x0aSub CloseWorkbook()\x0d\x0aActiveWorkbook.Close\x0d\x0aEnd Sub\x0d\x0a\x0d\x0a如果要避免出现提示,可添加“SaveChanges”参数,如直接保存并关闭工作簿:\x0d\x0aSub ClostAndSaveWorkbook()\x0d\x0aActiveWorkbook.Close Savechanges:=True\x0d\x0aEnd Sub\x0d\x0a将上述代码中的“True”改为“False”,则直接关闭工作簿而不保存。\x0d\x0a关闭所有打开的工作簿,并提示是否保存:\x0d\x0aSub CloseAllWorkbooks()\x0d\x0aOn Error Resume Next\x0d\x0aWorkbooks.Close\x0d\x0aEnd Sub\x0d\x0a退出Excel,并提示对有更改的工作簿进行保存:\x0d\x0aSub QuitExcel()\x0d\x0aApplication.Quit\x0d\x0aEnd Sub\x0d\x0a保存活动工作簿并退出Excel:\x0d\x0aSub SaveActiveWorkAndQuit()\x0d\x0aActiveWorkbook.Save\x0d\x0aApplication.Quit\x0d\x0aEnd Sub\x0d\x0a\x0d\x0a下面的代码在退出Excel时都不会提示是否保存工作簿。\x0d\x0a保存所有打开的工作簿并退出Excel:\x0d\x0aSub SaveAllAndQuit()\x0d\x0aFor Each wbk In Workbooks\x0d\x0awbk.Save\x0d\x0aNext\x0d\x0aApplication.Quit\x0d\x0aEnd Sub\x0d\x0a退出Excel,所有的改动都不保存:\x0d\x0aSub QutiAndNoAlerts()\x0d\x0aApplication.DisplayAlerts = False\x0d\x0aApplication.Quit\x0d\x0aEnd Sub