Suche in Access über 3 Tabellen

MyForm hatte ich übersehen. Sorry
Warum die Felder nicht mehr verbunden waren verstehe ich nicht, bei mir sind sie Verbunden, nach dem Download.

So habe jetzt alles so geändert wie du gesagt hast. Jetzt ist das Prob, dass alle Daten, die in der Listenfeld drin sind bei Eingabe in das Suchfeld verschwinden.
 
Auf Zur_Station und Stationsnummer kann ich filtern wenn ich Sie einzeln Abfrage.
SQL:
WHERE (((Station_2.Stationsnummer) Like '*' & Forms!Formular1!txtSuchfeld));
Die Straße aber nicht, nach Eingabe ins feld txtsuchfeld bleibt das Listenfeld leer.

Und wenn ich mehrere Abfragen
SQL:
WHERE (((Straßenliste.Straße) 
Or (Station_2.Stationsnummer) 
Or (Straßenbereiche_2.Zur_Station) 
Or (Straßenbereiche_2.ID_Str_bereich)
Or (Straßenbereiche_2.ID_Station)
 Like '*' & Forms!Formular1!txtSuchfeld));

mit or verknüpfe bleibt das Listenfeld auch leer.

Gruß
Michael
 
Zuletzt bearbeitet von einem Moderator:
Keine Ahnung was du jetzt wieder gebastelt hast.
Mit den 2 beschriebenen Anpassung deines Beispieles hats bei mir funktioniert.

Aber item. Willst du wirklich auf eine ID suchen?

Noch ein Tipp: Mach keine Feldnamen mit Sonderzeichen. Das ß würde ich nicht in Feld und Tabellennamen verwenden. Genauso wie Lehrzeichen, äöü etc.
 
Danke schon mal für deine Hilfe
Fehler habe ich gefunden, man muss die Straße ausschreiben kann z.B nicht einfach Am hinschreiben und bekommt alle Straße die mit Am anfangen aufgelistet.
Gruß
Michael


Wie kann es es realisieren, dass man schon bei der Eingabe sucht?
Über Event-> bei Taste ?
 
Zuletzt bearbeitet:
Wenn du 'Am' am Anfang suchen willst, dann musst du das '*' am Ende Anfügen.

'KeyUp' ist der Event... jedoch würde ich das nicht machen. Bei grösseren Datenmengen wird es langsam
 
So, vielen Dank erstmal, die suche klappt super.
Hätte jetzt noch eine Frage, wo wir schon mal bei dem Thema sind.
Wie bekomme ich es hin, dass meine Suche die ich im Hauptformular gefunden habe auch in meinem Unterformular angezeigt wird?

Gruß
Michael
 
Ich versteh die Frage nicht ganz.

Auf ein Unterformular kann wie folgt verwiesen werden

Rote Bereiche sind zu ersetzen.
Forms![myForm: Name meines Formulars]![mySubFormControl: Name des Elements in MyForm]!Form![myControl: Name des Elements im Unterformular]

Aus dem Haubtformulr kannst du wie folgt auf das Feld des Unterfomulares verweisen
Visual Basic:
'Die Namen sind analog zum oberen Beispiel
'Als Beispiel das auffrischen des Controls myControl auf dem Unterformular
me.mySubFormControl.form.myControl.requery
 
Ich habe jetzt folgendes Formular für die Suche:

SQL:
SELECT
Straßenbereiche.Zur_Station, Straßenliste.Straße, Stationen.Standort, Straßenbereiche.HA, Stationen.Konzentrator 
FROM
(Stationen INNER JOIN Straßenbereiche 
ON Stationen.Stationsnummer=Straßenbereiche.ID_Station) INNER JOIN Straßenliste ON Straßenbereiche.ID_Straße=Straßenliste.[Auto-ID] 
WHERE 
(((Straßenliste.Straße) Like '*' & Forms!Formular1!txtSuchfeld & '*')); 
UNION 
SELECT
Straßenbereiche.Zur_Station, Straßenliste.Straße, Stationen.Standort, Straßenbereiche.HA, Stationen.Konzentrator 
FROM
(Stationen INNER JOIN Straßenbereiche
 ON Stationen.Stationsnummer=Straßenbereiche.ID_Station) INNER JOIN Straßenliste ON Straßenbereiche.ID_Straße=Straßenliste.[Auto-ID] 
WHERE
((( Straßenbereiche.Zur_Station) Like '*' & Forms!Formular1!txtSuchfeld & '*')); 
UNION 
SELECT
Straßenbereiche.Zur_Station, Straßenliste.Straße, Stationen.Standort, Straßenbereiche.HA, Stationen.Konzentrator 
FROM
(Stationen INNER JOIN Straßenbereiche 
ON Stationen.Stationsnummer=Straßenbereiche.ID_Station) INNER JOIN Straßenliste ON Straßenbereiche.ID_Straße=Straßenliste.[Auto-ID] 
WHERE
(((Stationen.Standort) Like '*' & Forms!Formular1!txtSuchfeld & '*')); 
UNION 
SELECT
Straßenbereiche.Zur_Station, Straßenliste.Straße, Stationen.Standort, Straßenbereiche.HA, Stationen.Konzentrator 
FROM
(Stationen INNER JOIN Straßenbereiche 
ON Stationen.Stationsnummer=Straßenbereiche.ID_Station) INNER JOIN Straßenliste ON Straßenbereiche.ID_Straße=Straßenliste.[Auto-ID] 
WHERE
((( Straßenbereiche.HA) Like '*' & Forms!Formular1!txtSuchfeld & '*')); 
UNION 
  SELECT 
Straßenbereiche.Zur_Station, Straßenliste.Straße, Stationen.Standort, Straßenbereiche.HA, Stationen.Konzentrator 
FROM
(Stationen INNER JOIN Straßenbereiche 
ON Stationen.Stationsnummer=Straßenbereiche.ID_Station) INNER JOIN Straßenliste ON Straßenbereiche.ID_Straße=Straßenliste.[Auto-ID] 
WHERE 
((Stationen.Konzentrator) Like '*' & Forms!Formular1!txtSuchfeld & '*'));

Das klappt auch so weit.
Das 2 Formular wird über die Abfrage1 abgefragt. Code:
SQL:
SELECT Stationen.Stationsnummer, Stationen.Standort, Straßenliste.Straße, Straßenbereiche.von, Straßenbereiche.bis 
FROM (Straßenbereiche INNER JOIN Straßenliste ON Straßenbereiche.ID_Straße = Straßenliste.[Auto-ID]) INNER JOIN Stationen ON Straßenbereiche.ID_Station = Stationen.Stationsnummer;


Nun möchte ich gerne ein Unterformular aus der 2 Formular erstellen, wo dann z.B. die gefundene Straße oder HA aus dem "Formular1" im Unterformular angezeigt wird.
Wie müßte ich da vorgehen?

Danke vorab schon mal

Gruß
Michael
 
Zuletzt bearbeitet von einem Moderator:
Aua...

Das UNION ist ein wenig übertrieben. Du hast immer dieselben Quellen. Einfache OR tuns da auch:
SQL:
SELECT
	sb.Zur_Station, 
	sl.Straße, 
	sta.Standort, 
	sb.HA, 
	sta.Konzentrator
FROM
	(Stationen  AS sta
	INNER JOIN Straßenbereiche AS sb
		ON sta.Stationsnummer=sb.ID_Station) 
	INNER JOIN Straßenliste AS sl
		ON sb.ID_Straße=sl.[Auto-ID]
WHERE
	sta.Konzentrator LIKE '*' & Forms!Formular1!txtSuchfeld & '*'
	OR  sb.Zur_Station LIKE '*' & Forms!Formular1!txtSuchfeld & '*'
	OR sta.Standort LIKE '*' & Forms!Formular1!txtSuchfeld & '*'
	OR  sb.HA LIKE '*' & Forms!Formular1!txtSuchfeld & '*'
	OR sta.Konzentrator LIKE '*' & Forms!Formular1!txtSuchfeld & '*';

Deine Eigentliche Frage versteh ich nicht wirklich.
Dein UNION ist die Abfrage die du für die Listbox in Formular1 brauchst?
Formular2 ist ein Unterformular von Formular1?

Wenn beides ja, dann ist es genau das gleiche Query wie oben.
 
Zuletzt bearbeitet von einem Moderator:
Deine Eigentliche Frage versteh ich nicht wirklich.
Dein UNION ist die Abfrage die du für die Listbox in Formular1 brauchst?
Formular2 ist ein Unterformular von Formular1?
Genau
Wenn beides ja, dann ist es genau das gleiche Query wie oben.

Erstmal danke für den Quellcode.
Auf beide Fragen ja. Nur ich bekomme es nicht hin, auch wenn ich die Abfrage3 erweitere, dass ich die Textfelder im Unterformular mit den Werten der Listbox aktualisieren kann.
 

Neue Beiträge

Zurück