Seite 1 von 1

Feldverwendungsnachweis

Verfasst: So, 23.11.2014 15:17
von WSO
Hallo Zusammen,
gibt es in Base eine Art "active reference" für Felder in Abfragen und Formularen?
Bei mit häufen sich die Abfragen. Bei Änderungen von Feldnamen oder Eigenschaften in den Tabellen wäre es toll, vorher ermitteln zu können,
welche Abfragen, Formulare, ... davon betroffen wären.

Gruss,
WSO

Re: Feldverwendungsnachweis

Verfasst: So, 23.11.2014 17:14
von F3K Total
Hi,
gibt es meines Wissens nach nicht, per Makro kann man aber alles herausfinden, hier ein Beispiel für die Suche nach Spaltennamen in den vorhandenen Abfragen:

Code: Alles auswählen

Sub Analyse_Columns
    sColumn = inputbox ("Spaltenname:","Spaltenverwendung in Abfragen")
    ocon = thisdatabasedocument.Currentcontroller.activeconnection
    oQD = ocon.Queries
    sResult = ""
    for i = 0 to oQD.count - 1
        oQ = oQD(i)
        oC = oQ.columns
        for j = 0 to oC.count - 1
            c = oC(j)
            if c.name = sColumn then
                if sResult = "" Then
                    sResult = oQ.Name
                else
                    sResult = sResult+chr(13)+oQ.Name
                endif
            endif
        next j
    next i
    if sResult  = "" then
         msgbox "Die Spalte """+sColumn+""" gibt es in keiner Abfrage"
    else
        msgbox "Die Spalte """+sColumn+""" gibt es in folgenden Abfragen:"+chr(13)+sResult        
    endif 
end sub
EDIT:
Die Spaltennamen der Tabellen kannst Du direkt aus der Datenbank abfragen:

Code: Alles auswählen

SELECT TABLE_NAME "Tabelle", COLUMN_NAME "Spalte", TYPE_NAME "Typ", COLUMN_SIZE "Länge", ORDINAL_POSITION "Position" From INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE TABLE_SCHEM = 'PUBLIC'
Und wenn du Ansichten verwenden würdest, ginge das ähnlich.
Die Abfragen sind nicht Bestandteil der Datenbank, sonden befinden sich in der .odb Datei und lassen sich daher nicht abfragen.
HTH R

Re: Feldverwendungsnachweis

Verfasst: So, 23.11.2014 23:44
von WSO
Hey super, das erspart mir eine Menge Arbeit.
Vielen, vielen Dank dafür.
Guss,
WSO