Robert Gracie
Subscriptions at servicexp.com
Sun Jul 25 12:11:42 CDT 2004
Yea, that lists the reference made from within the database, but what I
need is to "Detect" references (external connections) to the mde.
Does this make any sense?
Robert Gracie
www.servicexp.com
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Gustav Brock
Sent: Sunday, July 25, 2004 10:07 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Detecting External References From With-In an
MDE?
Hi Robert
> How can I list them?, I know how to get the reference collection for the
> "internal" references, but I have no idea how to find any external (other
> databases or programs connected (Referenced) to the mde) references.
Here is one method, filling a table:
<code>
Option Compare Database
Option Explicit
' Declarations and functions for creating and storing
' a list (table) of the current References.
'
' 2001-08-20. Cactus Data ApS, CPH.
' Length of GUID string per definition.
Private Const clngGUID As Long = 38
Type GuidDefinition
Guid As String * clngGUID
Major As Integer
Minor As Integer
End Type
' Minimum Guid version.
Private Const cintMajorMinVersion As Integer = 1
Private Const cintMinorMinVersion As Integer = 0
Private Const cstrReferencesTableName As String = "USysReferences"
Private Const cintLocalTable As Integer = 1
Public Function CreateTableReferences() As Boolean
Dim strSQL As String
On Error Resume Next
' Create, without using DAO, table cstrReferencesTableName.
strSQL = vbNullString & _
"CREATE TABLE " & cstrReferencesTableName & " " & _
"(" & _
"GuidString TEXT(38), " & _
"Major SMALLINT, " & _
"Minor SMALLINT, " & _
"Name TEXT(255) NOT NULL, " & _
"FullPath TEXT(255), " & _
"MajorMin SMALLINT, " & _
"MinorMin SMALLINT, " & _
"CONSTRAINT idxGuid PRIMARY KEY (GuidString)" & _
")" & _
";"
DBEngine(0)(0).Execute (strSQL)
CreateTableReferences = (Err = 0)
End Function
Public Function PopulateTableReferences( _
Optional ByVal booDisableLowerGuidVersions As Boolean) _
As Boolean
Dim ref As Reference
Dim strSQL As String
' If booDisableLowerGuidVersions is True, minimum values for Guid version
' will be set equal to current Guid version.
' If booDisableLowerGuidVersions is False, minimum values for Guid version
' will be set as defined by the global variables:
' cintMajorMinVersion
' cintMinorMinVersion
On Error Resume Next
' Empty, without using DAO, table cstrReferencesTableName.
strSQL = "DELETE * FROM " & cstrReferencesTableName & ";"
DBEngine(0)(0).Execute (strSQL)
' Populate, without using DAO, table cstrReferencesTableName.
For Each ref In References
With ref
strSQL = vbNullString & _
"INSERT INTO " & cstrReferencesTableName & " " & _
"VALUES(" & _
"'" & .Guid & "', " & _
"" & .Major & ", " & _
"" & .Minor & ", " & _
"'" & .Name & "', " & _
"'" & .FullPath & "', " & _
"" & IIf(booDisableLowerGuidVersions, .Major,
cintMajorMinVersion) & ", " & _
"" & IIf(booDisableLowerGuidVersions, .Minor,
cintMinorMinVersion) & "" & _
")" & _
";"
DBEngine(0)(0).Execute (strSQL)
End With
Next
Set ref = Nothing
PopulateTableReferences = (Err = 0)
End Function
</code>
You can easily reduce it to just run a Debug.Print list if you wish.
/gustav
> You can list them but, as far as I know, not change them - that's one
> of the limitations of an mde.
> /gustav
>> A2k
>> Is it possible to detect external references made on an .mde from
>> within the mde?
--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com