Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage: In mehreren Tabellen prüfen ob ein Feld existiert

Begonnen von bobnoob2, September 25, 2017, 14:27:02

⏪ vorheriges - nächstes ⏩

bobnoob2

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

DF6GL

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....

bobnoob2

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 ?

Lachtaube

Grüße von der (⌒▽⌒)

DF6GL

#4
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.