William Benson
vbacreations at gmail.com
Sat Dec 31 22:53:21 CST 2011
Is it not best to set an object equal to Codedb and then use the
OpenRecordset property (or method, I continually mix those) of the object
rather than based on CodeDb directly?
That seems to be a safety rule for CurrentDB and I would expect the two
classes to behave similarly?
Or not. Not really even sure what I am talking about.
NICE FUNCTIONS THOUGH!
HYAPPEY NIEW YEAH!
On Dec 31, 2011 10:34 AM, "Dan Waters" <df.waters at comcast.net> wrote:
> 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
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>