1

Thema: Problem! Feldnamen auf deren Existenz prüfen.

Hallo ,
ich hoffe Ihr könnt mir weiterhelfen.
Ich muss neue Datensätze in eine Datenbank speichern('Insert Into.......')
Ich greife mittels Recordsets auf die Access-Datenbank zu. Mein Problem ist, das ich prüfen müsste ob die einzelnen Spalten der Tabelle überhaupt existieren. Es ist bekann wie die einzelnen Spalten heissen.Da ich aber die SQL (Insert into...) dynamisch schreiben möchte, muss ich prüfen ob die zu speichernde Spalte überhaupt in der Tabelle vorkommt.
Bsp:
Neuer Datensatz-->
Spaltenkomplett="Spalte1,Spalte2,Spalte3"
Wertkomplett="'1','2','3'"
SQL = "INSERT INTO ***  ("&Spaltenkomplett&") Values ("&Wertkomplett&")

Das funktioniert solange, wie in der Zieltabelle auch alle Felder (Spalte1,Spalte2,Spalte3) vorhanden sind. Fehlt jedoch eine Spalte bekomm ich eine Fehlermeldung (is ja klar!)
Also muss ich vorher eigentlich nur prüfen, ob alle Spaltennamen in der neuen Tabelle vorhanden sind!
Hoffentlich hat jemand eine Lösung!!!!!
Vielen Dank im vorraus
mfG Matthi

Re: Problem! Feldnamen auf deren Existenz prüfen.

Hallo,

hier mal ein kleines Bsp:

Public Sub zeigeSpaltenNamen()
On Error GoTo Err_Proc
Dim db As DAO.Database
Dim spalte As DAO.Field
Dim i As Integer

  Set dbDaten = CurrentDb()
  For i = 0 To dbDaten.TableDefs.count - 1
    strName = dbDaten.TableDefs(i).name
    ' System Tabellen nicht einbinden
    If Left$(strName, 4) <> "MSys" Then
      For Each spalte In dbDaten.TableDefs(i).Fields
        Debug.Print spalte.name
      Next spalte
    End If
  Next i
 
Exit_Proc:
  Set dbDaten = Nothing
  Exit Sub
Err_Proc:
  MsgBox Err.Number & ": " & Err.Description, , "Fehler"
  Err.Clear
  Resume Exit_Proc
End Sub

Jetzt noch ohne Ende Deine if spalte.name=... rein und fertig

Gruß