Hallo zusammen,
ich brauche Hilfe zu Access. Wie bekomme ich eine Abfrage hin, die überprüft ob ein bestimmtes Feld in x Tabellen vorhanden ist. Wenn es vorhanden ist, kann es mir noch sagen in welchen Tabellen dieses Feld vorhanden ist. Ich frage deswegen weil es x viele Tabellen gibt und ich nicht in jeder Tabelle nach dem bestimmten Feld suchen will.
Vielen Dank
Hallo,
mit einer Abfrage schaffst Du das nicht.
Du könntest mit einer Schleife alle Tabellen nacheinander "öffnen" und bei jedem Durchgang ebenfalls mit einer weiteren Schleife die Tabellenfelder dahingehen prüfen, ob das bestimmte Feld existiert.
Was steckt denn hinter einem solchem Unterfangen? Normalerweise weiß man von Grund auf, in welcher Tabelle welches Feld existiert....
Vielen Dank für deine rasante Antwort.
Wie würde der SQL-Code aus, ich habe keine Idee wie ich das schreiben soll.
Ist eine For-Schleife die Lösung und wie sieht das aus. Es sind nämlich mehr als 600 Tabellen wenn eine Schleife nicht möglich ist gibt es eine andere Lösung dies zu umgehen ?
Der ACCESS Dependency Checker (http://accessdependencychecker.com/) könnte Dein Freund werden.
Hallo,
z. B. in einem Standardmodul:
Option Compare Database
Option Explicit
Public Function ExistsTblField(strFld As String)
Dim db As DAO.Database, tdf As DAO.TableDef, fld As DAO.Field
On Error Goto myerr
Set db = CurrentDb
ExistsTblField = Null
For Each tdf In db.TableDefs
For Each fld In tdf.Fields
If strFld = fld.Name Then
ExistsTblField = ExistsTblField & ";" & tdf.Name
End If
Next
Next
If Len(ExistsTblField) > 0 Then ExistsTblField = Mid(ExistsTblField, 2)
Exit_Func:
Set db = Nothing
Exit Function
myerr:
MsgBox Err.Number & ": " & Err.Description
Resume Exit_Func
End Function
Mit z. B.
Msgbox ExistsTblField ( "Feldname")
werden die Tabellen aufgelistet, in denen das Feld Feldname enthalten ist.