PRB: Cannot Connect Data Control to a Password Protected MDB (160169)



The information in this article applies to:

  • Microsoft Visual Basic Learning Edition for Windows 5.0
  • Microsoft Visual Basic Learning Edition for Windows 6.0
  • Microsoft Visual Basic Professional Edition for Windows 5.0
  • Microsoft Visual Basic Professional Edition for Windows 6.0
  • Microsoft Visual Basic Enterprise Edition for Windows 5.0
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic Standard Edition, 32-bit, for Windows 4.0
  • Microsoft Visual Basic Professional Edition, 16-bit, for Windows 4.0
  • Microsoft Visual Basic Professional Edition, 32-bit, for Windows 4.0
  • Microsoft Visual Basic Enterprise Edition, 16-bit, for Windows 4.0
  • Microsoft Visual Basic Enterprise Edition, 32-bit, for Windows 4.0

This article was previously published under Q160169

SYMPTOMS

If you attempt to use the Data control to connect to a password-protected Access database at design time, you receive the following error message:
Not a valid password
Specifically, this error occurs when you set the RecordSource property of the Data control.

RESOLUTION

In the Properties window, set the following properties for the Data control:
      Property             Value of Property
      ----------------   ---------------------
      DatabaseName         ATEST.MDB
      Connect              ;pwd=aaa
      RecordSource         Table1
				

NOTE: You must set the DatabaseName property first, then set the connect property. If the properties are not set in this order, you receive the same error message.

IMPORTANT: This functionality is broken in Microsoft Visual Studio 6.0 Service Pack 4 (SP4).

STATUS

This behavior is by design.

MORE INFORMATION

Steps to Reproduce Problem

  1. Start a new project in Visual Basic. Form1 is created by default.
  2. In the Load event for Form1, paste the following code:
       Private Sub Form_Load()
    
         Dim DB As Database
         Dim tblDef As TableDef, fld As Field
    
         Set DB = DBEngine.Workspaces(0).CreateDatabase("C:\Atest.mdb", _
             dbLangGeneral, dbEncrypt)
         DB.NewPassword "", "aaa"
         ' Create new TableDef.
         Set tblDef = DB.CreateTableDef("Table1")
         ' Add field to tblDef.
         Set fld = tblDef.CreateField("Field1", dbInteger)
         tblDef.Fields.Append fld
         ' Save TableDef definition by appending it to TableDefs collection.
         DB.TableDefs.Append tblDef
         DB.Close
         MsgBox "Atest.mdb and Table1 is created."
    
       End Sub
    					
  3. Press the F5 key to run the project. A password-protected database called Atest.mdb is created.
  4. Start another instance of Visual Basic 4.0. Form1 is again created by default.
  5. Add a Data control to Form1.
  6. In the Properties window, set the DatabaseName property of the Data control to "C:\Atest.mdb." If you try to set the RecordSource property, you receive the above-mentioned error message.

Modification Type:MajorLast Reviewed:6/28/2004
Keywords:kbprb KB160169