A.D.Tejpal
ad_tp at hotmail.com
Mon May 5 04:04:08 CDT 2003
Jeanine,
You may also like to try on the following lines.
Let SourceDb and DestnDb be the string variables representing full paths of source & destination databases. Desired sequence of action - Close SourceDb, Open DestnDb, take desired action within DestnDb, close DestnDb, return back to SourceDb. Two alternatives could be considered -
Case-1 -- Hard coding
(a) Exit Code in SourceDb -
Dim acp As Access.Application
Set acp = New Access.Application
acp.Visible = True
acp.OpenCurrentDatabase DestnDb
Application.Quit acQuitSaveAll
(b) Code in startup form of DestnDb -
<< Code for action in DestnDb >>
Dim acp As Access.Application
Set acp = New Access.Application
acp.Visible = True
acp.OpenCurrentDatabase SourceDb
Application.Quit acQuitSaveAll
Case-2 -- Flexible Response
(a) Create a table (named "T_Status") in SourceDb.It will have two fields, both of text type - namely DbFullPath(full path of source database) and Status("R" for return back to SourceDb, "S" for stay put in DestnDb).Values need not be filled manually.
(b) Relevant command button in SourceDb would have following code in its click event -
Dim rst1 As ADODB.Recordset
Dim FPT As String, TBL As String
Dim DestnDb As String, STS As String
Dim acp As Access.Application
DestnDb = "<Put here full path of destination database>"
TBL = "T_Status"
STS = "R" ' R - for return back to Source Database,
' S - for stay put in Destination Database.
FPT = CurrentProject.FullName ' Gives Full Path
Set rst1 = New ADODB.Recordset
Set rst1.ActiveConnection = CurrentProject.Connection
rst1.CursorType = adOpenKeyset
rst1.LockType = adLockOptimistic
rst1.Source = TBL
rst1.Open options:=adCmdTable
If rst1.RecordCount > 0 Then
rst1.MoveFirst
rst1.Fields("DbFullPath") = FPT
rst1.Fields("Status") = STS
Else
rst1.AddNew
rst1.Fields("DbFullPath") = FPT
rst1.Fields("Status") = STS
End If ' rst1.RecCount
rst1.Update
DoCmd.TransferDatabase acExport, "Microsoft Access", _
DestnDb, acTable, TBL, TBL
rst1.Close
Set rst1 = Nothing
Set acp = New Access.Application
acp.Visible = True
acp.OpenCurrentDatabase DestnDb
Application.Quit acQuitSaveAll
(c) Code in startup form of DestnDb -
<< Code for action in DestnDb >>
Dim STS As String, FPT As String
Dim acp As Access.Application
STS = Nz(DLookup("Status", "T_Status"), "")
FPT = Nz(DLookup("DbFullPath", "T_Status"), "")
If STS = "R" And Len(FPT) > 0 Then
Set acp = New Access.Application
acp.Visible = True
acp.OpenCurrentDatabase FPT
Application.Quit acQuitSaveAll
End If ' STS
Regards,
A.D.Tejpal
--------------------------------
----- Original Message -----
From: Charlotte Foust
To: accessd at databaseadvisors.com
Sent: Friday, May 02, 2003 20:44
Subject: RE: [AccessD] Close current database
Take a look at the OpenCurrentDatabase method. Both databases stay open but you switch to the new one.
Charlotte Foust
----- Original Message -----
From: Stuart McLachlan
To: Jeanine ; accessd at databaseadvisors.com
Sent: Friday, May 02, 2003 18:38
Subject: Re: [AccessD] Close current database
On 2 May 2003 at 7:29, Jeanine wrote:
>
> I just can't get the darn thing to close itself and open another db.
>
One way, of the top of my head would be:
Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal _
lpDirectory As String, ByVal nShowCmd As Long) As Long _
Sub OpenTheOtherOne()
ShellExecute(0,"Open","C:\Full\Path\To\YourSecondApp.mdb"","","",1)
DoCmd.Quit
End Sub
Lexacorp Ltd
http://www.lexacorp.com.pg
Information Technology Consultancy, Software Development,System
Support.
-----Original Message-----
From: Jeanine [mailto:jscott at mchsi.com]
Sent: Friday, May 02, 2003 4:30 AM
To: accessd at databaseadvisors.com
Subject: [AccessD] Close current database
I am running into some problems with something and I think I may just be
making it too hard. I want to open one database from another - close the
first and run some code in the second. Then close the second and open
the first again.
I have messed around with the open and close currentdb methods but they
only seem to be for the purpose of automation.
My objective is to check the current version when my users open their
application. If the version is not current the routine will close the
application and open a separate db that does the copy routine. Then the
copy db will close itself and re-open the application. My theory is this
will give the users a pretty seamless version control system.
I just can't get the darn thing to close itself and open another db.
Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://databaseadvisors.com/pipermail/accessd/attachments/20030505/2ae28f09/attachment-0001.html>