ACC97: "...No read permission..." Error When Opening a Secured Database with Code (236878)
The information in this article applies to:
This article was previously published under Q236878 Moderate: Requires basic macro, coding, and interoperability skills.
SYMPTOMS
In Visual Basic for Applications code, when you try opening a table or query from a secure database with the OpenRecordset method, you may receive the following error message:
Run-time error '3112':
Record(s) can't be read; no read permission on 'tablename'
You receive this error even though you have sufficient permissions to open and view the table or query.
RESOLUTIONMicrosoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
Through code, you must define the workgroup information file before opening the secured database. The following code demonstrates how to do this:
Function OpenMyDb()
Dim WS As Workspace
Dim DB As Database
Dim Rs As Recordset
' Define the workgroup information file (system database) you will use.
DBEngine.SystemDB = "C:\Windows\System\MyWkgrp.mdw"
' OPTIONAL: Create a workspace with the correct login information
'Set WS = CreateWorkspace("NewWS", "MyID", "MyPwd", dbUseJet)
' OPTIONAL: If you set the workspace object, you can use the new
' workspace with the OpenDatabase command. For example:
'Set Db = WS.OpenDatabase("C:\My Documents\MyDB.mdb")
'
Set DB = OpenDatabase("C:\My Documents\MyDB.mdb")
Set Rs = DB.OpenRecordset("MyTbl")
Rs.Close
Set Rs = Nothing
DB.Close
Set DB = Nothing
' OPTIONAL: If you set the WS object, use the following to clean up
'WS.Close
'Set WS = Nothing
MsgBox "Done"
End Function
| Modification Type: | Major | Last Reviewed: | 6/23/2005 |
|---|
| Keywords: | kberrmsg kbprb KB236878 |
|---|
|