Dan Waters
df.waters at comcast.net
Sat Dec 31 09:32:13 CST 2011
Yes! I think you'll find this helpful. This is the very first procedure that is run when the app opens. I use an AutoExec macro, and it runs this procedure first. The stgDeveloperLibraryPath is taken from a table, but it could be hardcoded, or in a local table. HTH! Dan '-------------------------------- Public Function ResetLibraryReference() 1 On Error GoTo EH '-- Purpose: This will reset the library reference to ensure that the FE file is referencing the correct Library file. _ On a client PC, this isn't a problem, but that reference does need to be reset on the server. Otherwise, _ the TEST FE could reference the PROD library, etc. Dim ref As Access.Reference Dim stgCurrentPath As String Dim stgPrompt As String Dim stgDeveloperLibraryPath As String Dim appFE As Access.Application Dim intCount As Integer 2 Set appFE = CurrentProject.Application 3 If Environ("ComputerName") = "DanWaters" Then '-- Developer PC 4 stgDeveloperLibraryPath = ReadPSIParameter("DeveloperLibraryPath") '-- Is the correct Library already referenced? 5 For Each ref In appFE.References 6 If ref.FullPath = stgDeveloperLibraryPath Then 7 Exit Function 8 End If 9 Next ref '-- Find and delete the incorrect library reference 10 For Each ref In appFE.References 11 If InStr(ref.FullPath, "PSILibrary") <> 0 Then 12 appFE.References.Remove ref 13 End If 14 Next ref '-- Add the correct library reference 15 Access.References.AddFromFile stgDeveloperLibraryPath 16 Else 17 stgCurrentPath = CurrentProject.Path 18 For intCount = appFE.References.Count To 1 Step -1 19 Set ref = appFE.References(intCount) 20 If InStr(ref.Name, "PSILibrary") <> 0 Then 21 appFE.References.Remove ref '22 MsgBox appFE.References.Count '-- TEST '23 MsgBox "Removed Library Reference", vbOKOnly + vbInformation, "Removed Reference" '-- TEST 22 End If 23 Next '-- Add the correct library reference 24 appFE.References.AddFromFile stgCurrentPath & "\PSILibrary.mdb" '27 MsgBox "Added Library Reference", vbOKOnly + vbInformation, "Added Reference" '-- TEST '28 MsgBox appFE.References.Count '-- TEST 25 End If '-- Call a hidden SysCmd to automatically compile/save all modules. 26 Call SysCmd(504, 16483) 27 Exit Function EH: 28 stgPrompt = "This system has experienced a startup error in the ResetLibraryReference code procedure." _ & vbNewLine & vbNewLine _ & "Line: " & Erl & vbNewLine _ & "Number: " & Err.Number & vbNewLine _ & "Description: " & Err.Description _ & vbNewLine & vbNewLine _ & "Contact the system developer. This system will now Quit." _ & vbNewLine & vbNewLine _ & "NOTE: Be sure the library file project name = 'PSILibrary'." 29 MsgBox stgPrompt, vbCritical & vbOKOnly, "Startup Error" 30 Application.Quit End Function '-------------------------------- Public Function ReadPSIParameter(stgParameter As String) As String Dim stg As String Dim rst As DAO.Recordset stg = "SELECT " & stgParameter & " FROM tblPSIParameters IN '" & CurrentProject.Path & "\PSIConfig.mdb" & "'" Set rst = CodeDb.OpenRecordset(stg, dbOpenForwardOnly) ReadPSIParameter = rst(stgParameter) rst.Close Set rst = Nothing Exit Function ErrEx.Bookmark = BOOKMARK_ONERROR End Function '-------------------------------- -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, December 31, 2011 6:34 AM To: Access Developers discussion and problem solving Subject: [AccessD] Set references via automation Is it possible to set references in an access container (Lib or FE) via automation? Open the access container and then set a reference in that container, all from code running in the object that is performing the automation? -- John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com