VBA 函数连接access以及excel,同时自动版本

Private Function AccessJoinString() As String
If Val(Application.Version) < 12 Then
AccessJoinString = "Microsoft.Jet.Oledb.4.0"
Else
AccessJoinString = "Microsoft.Ace.Oledb.12.0"
End If
End Function

Private Function ExcelJoinString() As String
If Val(Application.Version) < 12 Then
ExcelJoinString = "Microsoft.Jet.Oledb.4.0;Extended Properties=Excel 8.0"
Else
ExcelJoinString = "Microsoft.Ace.Oledb.12.0;Extended Properties=Excel 12.0"
End If
End Function
Function AccessExecuteRecordset(AccessPath As String, sql As String) As Object
Dim cn As Object, rs As Object
Set cn = CreateObject("Adodb.Connection")
With cn
.Provider = AccessJoinString
.Open AccessPath
End With
Set rs = cn.Execute(sql)
Set AccessExecuteRecordset = rs
End Function

Function ExcelExecuteRecordset(ExcelPath As String, sql As String) As Object
Dim cn As Object, rs As Object
Set cn = CreateObject("Adodb.Connection")
With cn
.Provider = ExcelJoinString
.Open ExcelPath
End With
Set rs = cn.Execute(sql)
Set ExcelExecuteRecordset = rs
End Function

  

原文地址:https://www.cnblogs.com/joewancn/p/9898686.html

时间: 2024-11-01 13:24:40

VBA 函数连接access以及excel,同时自动版本的相关文章

C#连接Access数据库,C#连接Excel数据库,C#连接SqlServer数据库,C#连接Mysql数据库总结

大二下学期写的了,如今毕业一个月了,整理整理 额,以前写的好幼稚,只有自己明白了,网上一大堆,大概的意思说下吧 MySQL========================================= http://user.qzone.qq.com/652768664/blog/1347859952 连接mysql需要安装mysql,在mysql的C盘安装目录有一个连接 lib,将改lib添加引用用项目OK; static void Main(string[] args) { List<s

c# ADO连接Access 执行Open后程序自动退出

今天利用ADO连接Access数据库的时候遇到了前所未见的问题,Access数据库连接串,OleDbConnection,open的时候,系统就会自动关闭所有调试. 我就很纠结了,这个AccessHelp是从以前写过的程序中拷贝过来的(不想引用太多的DLL,看着烦),调试以前的一切正常. 也想到了是不是版本的问题,access2003的连接串 “Provider=Microsoft.Jet.OLEDB.4.0”: access2007的连接串“Provider=Microsoft.ACE.OLE

VBA函数

时间函数------------- 变量类型类型说明如下: %--整型 &--长整型 !--单精度浮点数 #--双精度浮点数 @--货币型 $--字符串型在Excel中录入数据时如何自动插入当前时间呢?比如说,用Excel制作了一份考勤表,员工上班时,门卫在相应的单元格中输入数值1,而想让Excel自动获取当前时间呢?对于这个问题,可以用VBA来实现了:右击考勤表所在的工作表标签(Sheet1),在随后出现的快捷菜单中,选择"查看代码"选项,打开Visual Basic窗口,并

C#连接Access数据库(详解)

做一个用VS2012的C#连接Access数据库的备忘, SQL数据库固然强大,有大微软的强力技术支持,LINQ的方便操作,但是如果写一个小程序对数据库方面没有什么大的要求的话,将来在数据库方面就可以选择使用access数据库,这样就能省去一定的开支. 首先,我们建一个数据库,因为大家使用的office版本不同,有用2000的有用2003的还有用 2007或者2010的.我用的是2007,但是无论用哪个版本请把建的数据库建为.mdb结尾的2003版本的不要建 .accdb结尾的. 建一个表,请先

Access之C#连接Access

原文:Access之C#连接Access 如果是个人用的小程序的话.一般都推荐用Sqlite和Access 使用SQlite数据库需要安装SQLite驱动,详情:SQLite之C#连接SQLite 同样要使用Access数据库一必须安装Access驱动程序.驱动下载:http://pan.baidu.com/s/1moWje 官网下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=13255 可以在收索你需要的版本. 微软ADO.

Window2003 64位IIS连接ACCESS报错“Microsoft.Jet.OLEDB.4.0”问题

Window2003 64位IIS连接ACCESS报错“Microsoft.Jet.OLEDB.4.0”问题 由于64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接.所以用于Access 和 Excel 数据库的 MicrosoftOLE DB Provider for Jet 在 64 位版本中不可用,也就是说,如下两种连接字符串都已经无法正常工作了:"Provid

php连接Access数据库错误及解决方法

<?php $connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("data.mdb"); $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC); $issuetime=date("Y-m-d H:i:s"); $sql="insert into test

64位sql server 如何使用链接服务器连接Access

原文:64位sql server 如何使用链接服务器连接Access 测试环境 操作系统版本:Windows Server 2008 r2 64位 数据库版本:Sql Server 2005 64位 网上的许多教程都介绍了如何使用链接服务器连接Access,但这些教程都是基于32位的sql server而言的. 参见经典教程:<SQL Server2005连接Excel.Access> 教程中提到了“访问接口”要选择“Microsoft.Jet.OLEDB.4.0”.但是由于windows s

在matlab编程环境下连接Access数据库

最近在使用matlab做课程项目,涉及到对数据的增删改查,起初决定使用excel来作为目标数据文件,后来为了编程简单些,决定使用Access来做数据文件. 首先要解决的是,配置好桌面数据源,我的电脑是windows10,因此win+s,弹出搜索框后,输入数据源,选择对应的32位及64位的程序,在网上找到的连接access教程,没有讲清楚选择程序对应的位数,这里一定要选择自己的电脑系统的位数. 具体配置: 数据源(ODBC)--->用户DSN-->添加.创建数据源SampleDB.(选择好电脑系