Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: tobsn121 am September 14, 2015, 16:51:13

Titel: WHERE mit mehreren Feldern
Beitrag von: tobsn121 am September 14, 2015, 16:51:13
Hallo Zusammen,

ich möchte eine Abfrage machen bei der ich 5 Spalten nach einem bestimmten Begriff abfrage und die Werte einer anderen Spalte (A) der gleichen Tabelle ausgeben. Der abgefragte Wert kann in allen 5 Spalten vorkommen, aber jeweils nur einmal pro Zeile.
Ich möchte mir also eine Liste ausgeben lassen die alle Werte der Spalte A beinhalten für die es in Spalte 1-5 den gesuchten Wert gibt.

Besten Dank!

Das ganze implementiere ich in VBA. FieldName = "Sponsor"(String)

    strSQL2 = "SELECT [Project_Name]" & _
                "FROM [tblBorrower]" & _
                "WHERE ([" & FieldName & "1] LIKE '*" & currComp & "*'" & _
                "OR [" & FieldName & "2] LIKE '*" & currComp & "*'" & _
                "OR [" & FieldName & "3] LIKE '*" & currComp & "*'" & _
                "OR [" & FieldName & "4] LIKE '*" & currComp & "*'" & _
                "OR [" & FieldName & "5] LIKE '*" & currComp & "*')"
Titel: Re: WHERE mit mehreren Feldern
Beitrag von: MzKlMu am September 14, 2015, 17:01:58
Hallo,
wenn möglich solltest Du das Datenmodell ändern.
ZitatDer abgefragte Wert kann in allen 5 Spalten vorkommen, aber jeweils nur einmal pro Zeile.
die Werte der 5 Spalten sollten in eine extra Tabelle als jeweils ein Datensatz. Du hast also 5 Datensätze statt 5 Felder. Diese Tabelle benötigt noch einen Fremdschlüssel zur Tabelle "tblBorrower".

Was sind denn das für 5 Werte die da gespeichert werden ?
Titel: Re: WHERE mit mehreren Feldern
Beitrag von: MaggieMay am September 14, 2015, 17:05:50
Hallo,

das wäre schon OK, wenn du die fehlenden Leerzeichen zwischen den Wörtern einfügen würdest, denn am Ende kommt dabei nur ein String heraus, die Zeilenumbrüche die du gemacht hast "sieht" Access nicht.

Zitatbei der ich 5 Spalten nach einem bestimmten Begriff abfrage
Und dann wäre da noch die Frage, ob du tatsächlich mit LIKE und Suchmustern vergleichen musst. Woraus besteht denn die Eingabe in "currComp"?

PS:
Und dann musst du den Code natürlich auch noch irgendwie zum Einsatz bringen...
Titel: Re: WHERE mit mehreren Feldern
Beitrag von: tobsn121 am September 17, 2015, 08:48:56
also..
Ich habe eine Tabelle in der [tblBorrower] in der der Projektname in der Spalte [Project_Name] steht. In bis zu fünf weiteren Spalten [Sponsor] (1-5) in der gleichen Tabelle stehen die Name von Firmen die an dem Projekt beteiligt sind. Dabei kann es vorkommen, dass eine dieser Firmen an mehreren Projekten beteiligt ist. Ich möchte nun zu einer bestimmten dieser Firmen abfragen an welchen Projekten sie beteiligt ist. Diese Firmen sind auch in einer weiteren Tabelle [tblSponsor] gespeichert. Der "LIKE" Operator ist eventuell vermeidbar.
Titel: Re: WHERE mit mehreren Feldern
Beitrag von: MzKlMu am September 17, 2015, 09:03:20
Hallo,
ich würde lieber das Datenmodell ändern. Keine 5 Spalten, sondern eine extra Tabelle mit einer Spalte für den Sponsor aber 5 Datensätzen. Das heißt, das ist eine klassische n:m Beziehung zwischen Borrower und Sponsor zu der eine 3. Tabelle notwendig ist. Mit Fremdschlüssel zu Borrower und Fremdschlüssel zu Sponsor. Das wäre auch Dauer die bessere Lösung. Siehe auch Antwort #1 auf die Du leider nicht eigegangen bist.