FlowFact - Entwicklungstools

zurück

Function - AD_GetRootAdDsn
Hauptadresse im Adressbaum

Diese Funktion wendet 'AD_GetParentAdDsn' solange an bis keine übergeordnete Adresse vorhanden ist. Eine Hauptadresse ist somit jede Adresse ohne eine übergeordnete Adresse.
Hinweis: Bei zyklisch Verknüpften Datensätzen wird ein Fehler ausgegeben.
  Function AD_GetRootAdDsn(ByVal strAdDsn As String) As String  
 


strAdDsn: Datensatznummer der untergeordneten Adresse
Rückgabewert: Datensatznummer (DSN) der Hauptadresse oder 'LEER'


Public Function AD_GetRootAdDsn(ByVal strAdDsn As String) As String
    Dim strDsnParent As String
    Dim strDsnCur As String
    Dim strMsg As String
    Dim strDsnList As String

    strDsnCur = strAdDsn
    strDsnParent = strDsnCur
    strDsnList = "|" & strDsnCur & "|"
    While strDsnParent <> ""
        strDsnParent = AD_GetParentAdDsn(strDsnCur)
        If strDsnParent <> "" Then
            If InStr(strDsnList, "|" & strDsnParent & "|") > 0 Then
                strMsg = "Zyklische Verknüpfung zwischen Adresse '§1§' und '§2§'"
                strMsg = Replace(strMsg, "§1§", oBase.Sql_GetKennung("AD", strDsnCur, False))
                strMsg = Replace(strMsg, "§2§", oBase.Sql_GetKennung("AD", strDsnParent, False))
                Err.Raise 601, "AD_GetRootADDsn", strMsg
            End If
            strDsnList = strDsnList & strDsnParent & "|"

            strDsnCur = strDsnParent
        End If
    Wend
    AD_GetRootAdDsn = strDsnCur
End Function