From: Philippe Lang Date: 2010-05-05T19:44:10+09:00 Subject: [ruby-core:30019] [Bug #2947] win32ole & MS Access 2007 Issue #2947 has been updated by Philippe Lang. Problem found: until Access 2007, path to the database can be specified with slashes or backslashes. It works in both situations. Since Access 2007, slashes yield to a read-only database, and backslashed a read-write database. Strange, but true! Since expand_path expands the path of a file with slashes, code had to be slightly changed in order to work with Access 2007: ---------------------------------------------- require 'win32ole' access = WIN32OLE.new('Access.Application') database = File.expand_path('db2000.mdb').gsub(/\//, '\\') access.OpenCurrentDatabase(database, false) access.DoCmd.OpenReport("rptTest") access.Visible = true ---------------------------------------------- Note that the vbs code has the same symptoms: if backslashes are replaced with slashes, database is opened read-only. ---------------------------------------------- Set objAcc = WScript.CreateObject("Access.Application") strDBName = "C:/Users/Philippe Lang/Desktop/db2000.mdb" objAcc.OpenCurrentDatabase strDBName objAcc.run "get_document_lines_store", "1234", "L", "1" objAcc.DoCmd.OpenReport "rptTest", 2, "", "" objAcc.Visible = true ---------------------------------------------- This is the case for native Access 2007 databases, and Access 2000 database in "compatibility mode" under Access 2007. Hope it can help anyone. Case can be closed. ---------------------------------------- http://redmine.ruby-lang.org/issues/show/2947 ---------------------------------------- http://redmine.ruby-lang.org