PDA

Vollständige Version anzeigen : Suchabfrage


<Andreas Treptow>
07.01.2002, 17:31
Hallo,

folgendes will ich machen:
Ich habe ein Formular mit verschiedenen Felder (gebundene Textfelder), wie z.B. "Seriennummer", "Kundennummer" und "Produkt". In einem zusätzlichen Feld "Text" (ungebundenes Textfeld) kann ich einen Begriff eingeben, der dann nach Druck auf einen Button über eine Abfrage ausgegeben wird.
Wie kann ich das machen?

Danke
Andreas

MarioR
07.01.2002, 19:56
Hallo Andreas,

ich verstehe die Frage nicht.

Soll die Abfrage alle DS auflisten, wo in "Seriennummer", "Kundennummer" und/oder "Produkt" der Inhalt von "Text" enthalten ist?

Kannst Du da noch etwas mehr dazu schreiben?

<Andreas Treptow>
08.01.2002, 14:11
Genau - ich möchte im Formular ein Feld haben, in dem ich den zu suchenden Begriff eingeben kann, der dann nach Druck auf einen Button eine Suchabfrage startet. Ausgegeben werden sollen dann all die Datensätze, die entweder im Feld "Produkt" oder "Seriennummer" oder "Kundennummer" eine Übereinstimmung finden.

Einfacher: Es soll ein Suchfeld geben, in dem ich in den Feldern "Produkt" oder "Seriennummer" oder "Kundennummer" einen Begriff suchen lassen kann, wie immer das dann aussehen mag.

Danke für deine Hilfe
Andreas

MarioR
08.01.2002, 20:39
Hallo Andreas,

das ist relativ einfach :)

Du erstellst eine neue Abfrage, nimmst Deine Tabelle auf und übernimmst die gewünschten Felder mit Doppelklick nach unten.
Dann trägst Du in jeder Spalte jeweils in einer neuen Zeile unter Kriterien das ein:

[Formulare]![DeinFormular]![DeinTextfeld]

In der Entwurfsansicht muss es dann so aussehen:

Feld: Seriennummer Kundennummer Produkt
Tabelle: DeineTabelle DeineTabelle DeineTabelle
...
Kriterien: [Formulare]![DF]![DTF]
oder: [Formulare]![DF]![DTF]
[Formulare]![DF]![DTF]


Änder aber bitte den Namen des Textfeldes "Text" im Formular. Es könnte sonst Probleme geben.

<Andreas Treptow>
10.01.2002, 09:52
Also die Abfrage hatte ich eigentlich auch genauso, nur bekomme ich keine Daten - , diese erhalte ich nur, wenn ich in jedes Feld, in dem gesucht werden soll und in welchem keine Daten eingegeben sind ein * eintrage. Das soll so aber nicht sein, da muss es doch auch eine Lösung für geben oder?

Andreas

MarioR
10.01.2002, 10:42
Hallo Andreas,

hast Du es wirklich genau so?

Also im SQL-Code müssen die Where-Kriterien mit OR und nicht mit AND verbunden sein:

...
WHERE ([Seriennummer]=[Formulare]![DeinFormular]![DeinTextfeld])
OR ([Kundennummer]=[Formulare]![DeinFormular]![DeinTextfeld])
OR ([Produkt]=[Formulare]![DeinFormular]![DeinTextfeld])

Dann ist es eigentlich egal, wenn in einem Feld der Wert gefunden wird, ob in den anderen Feldern des gleichen DS was drin steht.

Geht's nicht, dann poste den SQL-Code mal.

<Andreas Treptow>
10.01.2002, 11:55
Hallo, ich denke das Problem liegt daran, dass einige Tabellen nur verknüpft sind und nicht importiert (das ist allerdings Vorgabe, daran lässt sich nichts ändern). Jedenfalls ist es so dass wenn ich in jedes leere Feld ein * eingebe, die Abfrage funktioniert. Da ist der SQL-Code:

SELECT Produkt, Seriennummer, Verwendungszweck, Verbleib, [5DT].Sonstiges, [E-Datum], [KD-Nr#], Fehlerbeschreibung
FROM 5DT INNER JOIN 5DTH ON [5DT].Nr = [5DTH].Nr
WHERE ([Produkt]=[Formulare]![5DT]![txt_prod]) OR ([Seriennummer]=[Formulare]![5DT]![txt_sn]) OR ([KD-Nr#]=[Formulare]![5DT]![txt_kdnr]);

Unglaublich das Ganze.

Andreas

MarioR
10.01.2002, 12:29
Hmmm, irgendwie seh ich das Problem auch nicht :(

Hast Du mal die Abfrage ohne Where-Teil probiert?
Dann müsste sie eigentlich alle DS liefern (auch ohne * in jedem Feld).

martiniz
10.01.2002, 12:53
Hallo Andreas,

warum löst das nicht über ein einfaches makro oder über einen filter?

Laptop
10.01.2002, 14:29
Hallo, ich bins wieder (nun mal eingeloggt),

ohne WHERE-Teil funktioniert das wunderbar - das ist auch meine Abfrage, um dann die Daten für das Formular zu erhalten, bzw. diese darüber eingeben zu können.

Frage: Wie mach ich das mit einem Filter bzw. Makro?

Andreas

Laptop
11.01.2002, 09:02
Also das mit der Abfrage habe ich nun hinbekommen - wenn ich statt dem = ein LIKE einsetze funktioniert das.
Nun will ich aber "Teil des Feldinhaltes" suchen und nicht das "Ganze Feld", d.h. ich muss immer ein "*" hinter eine zu suchende Phrase setzen - wie kann ich unterbinden, dass ich dieses "*" setzen muss.

Andreas

MarioR
11.01.2002, 09:42
Hallo Andreas,

schreib unter Kriterien:

Wie [Formulare]![DeinFormular]![DeinTextfeld] + "*"

(Ich hoffe, dass der Tipp wenigstens funktioniert ;) )