?
Solved

VB Access 2000 Passwords

Posted on 2002-06-28
7
Medium Priority
?
338 Views
Last Modified: 2010-05-02
I am trying to connect to a Access .db with a global password.

 TMRace = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & dbFile & ";UID=Administrator;PWD=sam1104;"
        conn.Open TMRace

When I try to compact it after closing the above connection I get an error with the following code:

 Dim strSourceDB As String
 Dim strDestDB As String
 
  Dim jetEngine          As JRO.jetEngine
  Dim strSourceConnect   As String
  Dim strDestConnect     As String
 strSourceDB = dbFile
 strDestDB = dbArchive
 
 Kill (dbArchive)
 
  strSourceConnect = "Data Source=" & strSourceDB & ";"
  strDestConnect = "Data Source=" & strDestDB & ";"

  Set jetEngine = New JRO.jetEngine

  jetEngine.CompactDatabase strSourceConnect, strDestConnect

  Set jetEngine = Nothing
  CompactDb = True
End Function

What is the proper syntax for this compact with the first connect string?  Ideas?

dmoring
0
Comment
Question by:dmoring
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 33

Expert Comment

by:hongjun
ID: 7117897
Compact Database Example.

Dim objDAO_DBEngine As Object
Dim objFSO As Object
Dim strCompactedDBFile As String

Set objDAO_DBEngine = CreateObject("DAO.DBEngine.36")
Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strCompactedDBFile) Then
   objFSO.DeleteFile (strCompactedDBFile)
End If

objDAO_DBEngine.CompactDatabase dbFile, dbArchive

objFSO.CopyFile dbArchive, dbFile

objFSO.DeleteFile dbArchive 'delete the copy

Set objFSO = Nothing
Set objDAO_DBEngine = Nothing



hongjun
0
 
LVL 33

Expert Comment

by:hongjun
ID: 7117899
Ignore the above post. Got some errors. Below is the correct example.



Dim objDAO_DBEngine As Object
Dim objFSO As Object
Dim strCompactedDBFile As String

Set objDAO_DBEngine = CreateObject("DAO.DBEngine.36")
Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(dbArchive) Then
  objFSO.DeleteFile (dbArchive)
End If

objDAO_DBEngine.CompactDatabase dbFile, dbArchive

objFSO.CopyFile dbArchive, dbFile

objFSO.DeleteFile dbArchive 'delete the copy

Set objFSO = Nothing
Set objDAO_DBEngine = Nothing



hongjun
0
 
LVL 33

Expert Comment

by:hongjun
ID: 7117901
dmoring, you have few opened questions yet to be closed. Please maintain them.

hongjun
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:dmoring
ID: 7117948
hongjun,
There is a way with existing VB objects - not creating new instances as in ASP.  Also, I have a password on this one.

Other ideas?

Re: Unclosed questions - Did not get solution 2 of the 4 but closed them anyway and awarded points to the best answer.  The other 2 are this one and one with points for someone who has yet to pick them up. Thanks for the reminder though.

dmoring
0
 
LVL 33

Accepted Solution

by:
hongjun earned 300 total points
ID: 7117984
Try this

Try this

Dim jetEngine As JRO.JetEngine
Dim strSourceConnect As String
Dim strDestConnect As String
Dim objFso As Object

Set jetEngine = New JRO.JetEngine
strSourceConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                 "Data Source=" & dbFile & ";" & _
                 "User Id=Administrator;" & _
                 "Password=sam1104;"
strDestConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
             "Data Source=" & dbArchive & ";" & _
             "User Id=Administrator;" & _
             "Password=sam1104;"

jetEngine.CompactDatabase strSourceConnect, strDestConnect

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile dbArchive, dbFile
objFSO.DeleteFile dbArchive 'delete the copy


Set objFSO = Nothing
Set jetEngine = Nothing


hongjun
0
 

Author Comment

by:dmoring
ID: 7118417
Now you're onto my problem :-).  With that It wants a workgroup file to pull the username/id from the system.mdw and I just want an overall password for the .db - NOT a user workgroup setup.  If I put it in exactly as you describe (already did it - should have told you), I get the error 'Could not find WorkGroup file', which is correct.  I don't have the .db set up for tiered-access - just an overall password.

Keep going - your on the right track!

dmoring
0
 

Author Comment

by:dmoring
ID: 7118466
Got it!  It was:
        'Set Connect Strings
        strSourceConnect = "Data Source=" & dbFile & ";" & _
                            "Jet OLEDB:Database Password=sam1104;"
        strDestConnect = "Data Source=" & dbArchive & ";" & _
                            "Jet OLEDB:Database Password=sam1104;"
        strTempConnect = "Data Source=" & dbTemp & ";" & _
                            "Jet OLEDB:Database Password=sam1104;"

without Database in front of password, it is looking for the workgroup information - NOT the overall password.  Thanks for your effort and prompt response though!
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses
Course of the Month8 days, 20 hours left to enroll

764 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question