VBA DAO访问类似于Excel 2010的数据库 [英] VBA DAO Accessing Excel 2010 like database

查看:0
本文介绍了VBA DAO访问类似于Excel 2010的数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用DAO将一些VBA写入Excel2010。我希望能够像访问数据库一样访问EXCEL 2010工作簿。我正在尝试打开工作簿,而不是打开MDB文件。有没有办法将DAO用于Excel工作簿而不是实际的数据库?

Dim db As Database
Dim rst As Recordset
Dim SQL As String

SQL = "SELECT * From [DataSheet$]"

Set db = OpenDatabase(ThisWorkbook.FullName)
Set rst = db.OpenRecordset(SQL)

'displays the first record and first field
MsgBox rst.Fields(0)

'close the objects
rst.Close
db.Close

'destroy the variables
Set rst = Nothing
Set db = Nothing

我从这里借用了代码http://www.excel-spreadsheet.com/vba/dao_ado.htm

推荐答案

我解决了我的问题。使用下面的代码,您可以访问Excel文件并将其视为数据库。

Option Explicit

Private Sub btnConnect_Click()
  Dim dataConection As New ADODB.Connection
  Dim mrs As New ADODB.Recordset
  Dim SQL As String
  Dim DBPath As String
  Dim connectionString As String

  DBPath = ThisWorkbook.FullName 'Refering the sameworkbook as Data Source

  'You can provide the full path of your external file as shown below
  connectionString = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"

  'Open connection
  dataConection.Open connectionString

  'Create SQL query
  SQL = "SELECT * From [DataSheet$]"

  'Open record set (query or table, connection)
  mrs.Open SQL, dataConection

  Do While Not mrs.EOF
    Debug.Print "  " & mrs!Name
    mrs.MoveNext
  Loop

  mrs.Close

  'Close Connection
  dataConection.Close
End Sub

这篇关于VBA DAO访问类似于Excel 2010的数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆