# Using Win32OLE library for DAO

**URL:** <https://www.ruby-forum.com/t/using-win32ole-library-for-dao/100853>\
**Category:** Ruby\
**Created:** [August 1, 2006, 3:32pm UTC](https://www.ruby-forum.com/t/using-win32ole-library-for-dao/100853 "2006-08-01T15:32:44Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jatinder\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/a88e4f/32.png) [@Jatinder\_S](https://www.ruby-forum.com/u/Jatinder_S)\
**Post date:** [August 1, 2006, 3:32pm UTC](https://www.ruby-forum.com/t/using-win32ole-library-for-dao/100853/1 "2006-08-01T15:32:44Z")

</div>

I am trying to do something like following to connect to a MS Access db  
from  
ruby  
db = WIN32OLE._new_(“DAO.Database”)

but it gives me an error “accessQuery.rb:17:in `initialize': unknown OLE server:`DAO.Database’ (WIN32OLER  
untimeError)”  
How can I use DAO object library from ruby?

Thanks in advance,  
Jatinder

---

<div class="post-metadata">

**Author:** ![Jatinder\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/a88e4f/32.png) [@Jatinder\_S](https://www.ruby-forum.com/u/Jatinder_S)\
**Post date:** [August 1, 2006, 4:45pm UTC](https://www.ruby-forum.com/t/using-win32ole-library-for-dao/100853/2 "2006-08-01T16:45:20Z")

</div>

I could use Database class of DAO by writing following code,

accessApp = WIN32OLE._new_(‘Access.Application’)

_accessDB_ = accessApp.CurrentDb()

accessDB is an instance of DAO.Database class.

But is there a way I could use DAO directly?

Regards,

Jatinder

---

<div class="post-metadata">

**Author:** ![Jatinder\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/a88e4f/32.png) [@Jatinder\_S](https://www.ruby-forum.com/u/Jatinder_S)\
**Post date:** [August 1, 2006, 5:38pm UTC](https://www.ruby-forum.com/t/using-win32ole-library-for-dao/100853/3 "2006-08-01T17:38:46Z")

</div>

Jatinder S. wrote:

> I could use Database class of DAO by writing following code,
> 
> accessApp = WIN32OLE._new_(‘Access.Application’)
> 
> _accessDB_ = accessApp.CurrentDb()
> 
> accessDB is an instance of DAO.Database class.
> 
> But is there a way I could use DAO directly?
> 
> Regards,
> 
> Jatinder

Just out of curosity… _why_ do you want to use DAO?

---

<div class="post-metadata">

**Author:** ![Jatinder\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/a88e4f/32.png) [@Jatinder\_S](https://www.ruby-forum.com/u/Jatinder_S)\
**Post date:** [August 3, 2006, 12:05pm UTC](https://www.ruby-forum.com/t/using-win32ole-library-for-dao/100853/4 "2006-08-03T12:05:01Z")

</div>

To read Microsoft Access tables data like TableDefs, Tables etc from  
Ruby.

Regards,  
Jatinder

---

<div class="post-metadata">

**Author:** ![Jatinder\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/a88e4f/32.png) [@Jatinder\_S](https://www.ruby-forum.com/u/Jatinder_S)\
**Post date:** [August 3, 2006, 12:25pm UTC](https://www.ruby-forum.com/t/using-win32ole-library-for-dao/100853/5 "2006-08-03T12:25:23Z")

</div>

Hello,  
In message “Using Win32OLE library for DAO”  
on 06/08/01, “Jatinder S.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> I am trying to do something like following to connect to a MS Access db from  
> ruby  
> db = WIN32OLE._new_(“DAO.Database”)
> 
> but it gives me an error “accessQuery.rb:17:in `initialize': unknown OLE server: `DAO.Database’ (WIN32OLER  
> untimeError)”  
> How can I use DAO object library from ruby?

I have not used DAO, but I hope that DAO.DBEngine is what you want.

require ‘win32ole’  
WIN32OLE\_TYPE.progids.each do |p|  
if /dao/i =~ p  
puts p  
end  
end

In my win2k box, the result of above script is:  
DAO.DBEngine.36  
DAO.PrivateDBEngine.36  
DAO.TableDef.36  
DAO.Field.36  
…

And  
require ‘win32ole’  
dao = WIN32OLE.new(‘DAO.DBEngine.36’)  
works fine.

Regards,  
Masaki S.

---

<div class="post-metadata">

**Author:** ![Jatinder\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/a88e4f/32.png) [@Jatinder\_S](https://www.ruby-forum.com/u/Jatinder_S)\
**Post date:** [August 3, 2006, 12:52pm UTC](https://www.ruby-forum.com/t/using-win32ole-library-for-dao/100853/6 "2006-08-03T12:52:34Z")

</div>

I am trying to get an instance of DAO.DataTypeEnum class using Win32OLE  
but  
it gives the error mentioned before in my earlier email.  
Apart from the classes which are listed when ur script is run, there are  
other classes under DAO which I want to instantiate and use.

Thanks and Regards,  
Jatinder
