yronnen
asked on
Opening an Access97 object that requires password
Hi,
I want my VB application to open an access97 instance. I need this to be done without any user interaction,
The problem is that opening the database requires login and password, so when I'm creating the new access
instance, it first opens a login screen and wait.
Is there a way that I can automatically insert the login/password without user interaction?
Thanks
I want my VB application to open an access97 instance. I need this to be done without any user interaction,
The problem is that opening the database requires login and password, so when I'm creating the new access
instance, it first opens a login screen and wait.
Is there a way that I can automatically insert the login/password without user interaction?
Thanks
ASKER
SeanGiles,
I do not want to open a mdb file using DAO. I want to open Access97 ITSELF using set Acc=New Access.Application
I do not want to open a mdb file using DAO. I want to open Access97 ITSELF using set Acc=New Access.Application
Windows API/Global Declarations for :automatic password logon to ACCESS database
'************************* ********** ********** ********** *********
Declare Function Wnetgetuser Lib "mpr" Alias "WNetGetUserA" (ByVal lpName
As String, ByVal lpUserName As String, lpnLength As Long) As Long
Public Function NetWorkUser() As String
Static strUser As String
If Len(strUser) Then
NetWorkUser = strUser
Exit Function
End If
Dim lpUserName As String * 64
If Wnetgetuser("", lpUserName, Len(lpUserName)) Then
strUser = CurrentUser()
Else
strUser = Left(lpUserName, InStr(lpUserName, Chr(0)) - 1)
End If
NetWorkUser = strUser
End Function
After you write the code to create your database, use this code to automatically log you on.
David
'*************************
Declare Function Wnetgetuser Lib "mpr" Alias "WNetGetUserA" (ByVal lpName
As String, ByVal lpUserName As String, lpnLength As Long) As Long
Public Function NetWorkUser() As String
Static strUser As String
If Len(strUser) Then
NetWorkUser = strUser
Exit Function
End If
Dim lpUserName As String * 64
If Wnetgetuser("", lpUserName, Len(lpUserName)) Then
strUser = CurrentUser()
Else
strUser = Left(lpUserName, InStr(lpUserName, Chr(0)) - 1)
End If
NetWorkUser = strUser
End Function
After you write the code to create your database, use this code to automatically log you on.
David
ASKER
Sorry SeanGiles,
You told me how to get the user details from the registry. this is not my question...so I'll clarify my question:
I KNOW the user details, I know everything. What I need to do is to programmatically send a report to a printer using VB code.
To do that I need to start an access instance, open the DB and print the report. I know how to do that, too.
What I DON'T know is how to send the database login/password, so when Access starts, it will not prompt me for login.
You told me how to get the user details from the registry. this is not my question...so I'll clarify my question:
I KNOW the user details, I know everything. What I need to do is to programmatically send a report to a printer using VB code.
To do that I need to start an access instance, open the DB and print the report. I know how to do that, too.
What I DON'T know is how to send the database login/password, so when Access starts, it will not prompt me for login.
You can start access and pass in your database, user and password parameters on the command line. You can also invoke a start up macro as well from the comand line, and have the macro run your report. You can do this via the shell command, or via WIN32 API commands. This will allow you to have Access run your report starting it from VB.
ASKER
cymbolic,
Your answer forces me to have an autoexec macro. I don't know which database will the user open, so it's not good for me.
I need to open access as an activex server.
Your answer forces me to have an autoexec macro. I don't know which database will the user open, so it's not good for me.
I need to open access as an activex server.
I know this does not help, but I wrestled with this for a long time and gave up. The only way to get the user name and password automatically to Access seems to be on the command line, and how do you do that in a New or CreateObject? I would really like to see someone come up with an answer to this one.
tomook,
if nothing else is working,
try SendKeys
if nothing else is working,
try SendKeys
The trick with SendKeys is getting a handle to the login window. For some reason we could not reliably get one. It sometimes worked and sometimes not.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Dim wk As Workspace
Dim db As Database
Private Sub Form_Load()
Set wk = CreateWorkspace("test", "Admin", "Admin", dbUseJet)
Set db = wk.OpenDatabase("nwind.mdb
End Sub