# Datenbank Tabelle durchsuchen



## gnomhawaii (22. Juli 2006)

Hallo,

kennt irgendjemand eine Möglichkeit eine komplette Access Tabelle nach einem x-beliebigen Wert, der mehrmals in Zeilen oder Spalten vorkommt, zu durchsuchen und sich die Daten dann anzeigen zu lassen, ohne dass man extra für jede Spalte einen Befehl erzeugen muss? 

Beispiel

Spalten    1   2    3    4    5    6    7   8
Daten       A  B   C    A   H    G   F   A
               B  A   D     F   G   A    C  D
               A  C  A     I     F    C    X  Y

Der Wert A soll angezeigt werden....

Bisher habe ich folgende Code der mir aber immer nur einen Wert pro Spalte angibt...

Set RS = New ADODB.Recordset
findstr = "A"
    SQL = "SELECT * FROM XXX"
    RS.Open SQL, DB, adOpenDynamic, adLockOptimistic
      For I = 0 To RS.Fields.Count - 1
        If RS.Fields(I).Type = adVarWChar Then
          RS.MoveFirst
          RS.Find "[" & RS.Fields(I).Name & "] = '" & FindStr & "'", , adSearchForward, 0
          If Not RS.EOF Then
            MsgBox "Habe den Suchbegriff: " & FindStr & " in der Spalte: "  &RS.Fields(I).Name & " gefunden."
          End If
        End If
      Next
    RS.Close
    Set RS = Nothing

Ich hoffe es kann mir jemand helfen.

Gruß

Gnomhawaii


----------



## dignsag (24. Juli 2006)

Dein Problem ist, bisher durchsuchst du immer nur den 1. Datensatz deiner Tabelle in jeder Spalte.

Du musst aber auch jeden Datensatz durchsuchen.
Das heißt du musst um deine For-Schleife herum nochmal eine For-Schleife bauen die jeden Datensatz durchläuft. (Geht auch mit einer Do - Loop aber mit der For hast du das System wohl schon begriffen)

Du brauchst also im Endeffekt den Befehl RS.RecordCount und anstatt RS.Movefirst musst du RS.MoveNext verwenden.

Ansonsten glaube ich ist dein Denkansatz gar nicht so schlecht!

Viel Spaß beim tüfteln.


----------

