password related question

S

SomSallyX

Hi


I'm trying to write a simple viewer to display the tables and records in the
MS Access database.

Is there anyway i can know whether the database is password protected so
that i can ask for the password and supply it programmatically to the
database. (I'm using ADO/ADOX with VB)



Warm Regards
 
B

Brendan Reynolds

Try to open the connection, and trap the error if the MDB is
password-protected ...

Public Sub testsub()

Dim cnn As ADODB.Connection
Dim strPassword As String

On Error GoTo ErrorHandler
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source
= " & CurrentProject.Path & "\testdata.mdb"
cnn.Open
cnn.Close

ExitProcedure:
On Error Resume Next
If Not cnn Is Nothing Then
If cnn.State <> adStateClosed Then
cnn.Close
End If
End If
Exit Sub

ErrorHandler:
If Err.Number = -2147217843 Then
strPassword = InputBox("Password?")
cnn.ConnectionString = cnn.ConnectionString & ";Jet OLEDB:Database
Password=" & strPassword
Resume
Else
MsgBox "Error " & Err.Number & ": " & Err.Description, vbOKOnly Or
vbInformation
Resume ExitProcedure
End If

End Sub

--
Brendan Reynolds (MVP)
http://brenreyn.blogspot.com

The spammers and script-kiddies have succeeded in making it impossible for
me to use a real e-mail address in public newsgroups. E-mail replies to
this post will be deleted without being read. Any e-mail claiming to be
from brenreyn at indigo dot ie that is not digitally signed by me with a
GlobalSign digital certificate is a forgery and should be deleted without
being read. Follow-up questions should in general be posted to the
newsgroup, but if you have a good reason to send me e-mail, you'll find
a useable e-mail address at the URL above.
 
S

SomSallyX

Thanks


Brendan Reynolds said:
Try to open the connection, and trap the error if the MDB is
password-protected ...

Public Sub testsub()

Dim cnn As ADODB.Connection
Dim strPassword As String

On Error GoTo ErrorHandler
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source
= " & CurrentProject.Path & "\testdata.mdb"
cnn.Open
cnn.Close

ExitProcedure:
On Error Resume Next
If Not cnn Is Nothing Then
If cnn.State <> adStateClosed Then
cnn.Close
End If
End If
Exit Sub

ErrorHandler:
If Err.Number = -2147217843 Then
strPassword = InputBox("Password?")
cnn.ConnectionString = cnn.ConnectionString & ";Jet OLEDB:Database
Password=" & strPassword
Resume
Else
MsgBox "Error " & Err.Number & ": " & Err.Description, vbOKOnly Or
vbInformation
Resume ExitProcedure
End If

End Sub

--
Brendan Reynolds (MVP)
http://brenreyn.blogspot.com

The spammers and script-kiddies have succeeded in making it impossible for
me to use a real e-mail address in public newsgroups. E-mail replies to
this post will be deleted without being read. Any e-mail claiming to be
from brenreyn at indigo dot ie that is not digitally signed by me with a
GlobalSign digital certificate is a forgery and should be deleted without
being read. Follow-up questions should in general be posted to the
newsgroup, but if you have a good reason to send me e-mail, you'll find
a useable e-mail address at the URL above.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top