collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 51
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13804
  • stats Beiträge insgesamt: 63539
  • stats Themen insgesamt: 8609
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Abfrage: In mehreren Tabellen prüfen ob ein Feld existiert  (Gelesen 143 mal)

Offline bobnoob2

  • Newbie
  • Beiträge: 2
Abfrage: In mehreren Tabellen prüfen ob ein Feld existiert
« am: September 25, 2017, 14:27:02 »
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
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23095
Re: Abfrage: In mehreren Tabellen prüfen ob ein Feld existiert
« Antwort #1 am: September 25, 2017, 14:43:30 »
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....

Offline bobnoob2

  • Newbie
  • Beiträge: 2
Re: Abfrage: In mehreren Tabellen prüfen ob ein Feld existiert
« Antwort #2 am: September 25, 2017, 15:12:08 »
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 ?
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 854
Re: Abfrage: In mehreren Tabellen prüfen ob ein Feld existiert
« Antwort #3 am: September 25, 2017, 16:26:11 »
Der ACCESS Dependency Checker könnte Dein Freund werden.
Grüße von der (⌒▽⌒)
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23095
Re: Abfrage: In mehreren Tabellen prüfen ob ein Feld existiert
« Antwort #4 am: September 25, 2017, 16:37:56 »
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.