Kriterium in Abfrage über mehrere Felder

Hallo,

ich habe einen Terminkalender in dem ich zu verschiedenen Uhrzeiten Namen eintrage. In der dazugehörigen Tabelle werden dann Name und Datum gespeichert.
Die Tabelle enthält aber viele Felder, nämlich 8:00, 9:00, 10:00 usw.
Die Namen welche ich zur bestimmten Uhrzeit eintragen möchte, wähle ich aus einer Combo aus und übernehme sie per Doppelklick.

Jetzt möchte ich mir in einem ungebundenen Formular das Termindatum anzeigen lassen, zu welchen ich den Namen eingtragen habe. Die Uhrzeit braucht nicht mit angezeigt werden.

Soweit habe ich auch schon alles realisiert, nur steh ich jetzt vor dem Problem, wenn ich die Abfrage ausführe, kommt die Meldung „Abfrage ist zu komplex“

Ich weiss, sicherlich kommt jetzt die erste Frage, warum so umständlich…

Ich bin aber in Sachen Programmierung nicht so fitt, dass ich den Kalender hätte besser machen können.

Ausserdem läuft er soweit für meine Zwecke ganz gut, bis auf das Problem mit der Abfrage.

Also, hat hier jemand eine Idee wie ich es dennoch hinbekomme?

Grüße an euch
Markus

Moin Moin,

du hast bei der Abfrage das Häkchen drin für: alle Felder
Wenn du es entfernst, werden nur die Felder in der Abfrage berücksichtigt, die du auch ausgewählt hast.

Tipp: um die Eigenschaften der Abfrage aufzurufen, klicke einfach doppelt in den weißen Bereich neben der angezeigten Tabelle.

Grüße aus Rostock
Wolfgang
(Netwolf)

Moin Moin,

du hast bei der Abfrage das Häkchen drin für: alle Felder
Wenn du es entfernst, werden nur die Felder in der Abfrage
berücksichtigt, die du auch ausgewählt hast.

Hallo Wolfgang,

ja das stimmt, aber die brauche ich auch, dass ist ja mein Problem.
Daher die Frage ob es noch einen anderen Weg gibt.

Grüße, Markus

Moin Moin,

ja das stimmt, aber die brauche ich auch, dass ist ja mein Problem.

das verstehe ich nicht, wenn du nur Datum und Name benötigst, wozu benötigst du dann die Uhrzeit-Felder?

Daher die Frage ob es noch einen anderen Weg gibt.

die Frage ist: welcher Weg soll denn beschritten werden = was soll als Ergebnis raus kommen? Hast du mal einen Screenshot, eine Zeichnung oder eine genaue Beschreibung?

Poste hier bitte mal deine Tabellenstruktur(en).
So wie ich das vermute, hast du ca. 50 Felder in der Tabelle…

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo,

ich habe einen Terminkalender in dem ich zu verschiedenen
Uhrzeiten Namen eintrage. In der dazugehörigen Tabelle werden
dann Name und Datum gespeichert.
Die Tabelle enthält aber viele Felder, nämlich 8:00, 9:00,
10:00 usw.
Die Namen welche ich zur bestimmten Uhrzeit eintragen möchte,
wähle ich aus einer Combo aus und übernehme sie per
Doppelklick.

Ich denke, die Tabellenstruktur ist völlig ungeeignet und wird immer zu Problemen führen…

Jetzt möchte ich mir in einem ungebundenen Formular das
Termindatum anzeigen lassen, zu welchen ich den Namen
eingtragen habe. Die Uhrzeit braucht nicht mit angezeigt
werden.

Warum „ungebunden“?

Soweit habe ich auch schon alles realisiert, nur steh ich
jetzt vor dem Problem, wenn ich die Abfrage ausführe, kommt
die Meldung „Abfrage ist zu komplex“

WIE lautet der SQL-String der Abgfrage und WO sollen die Abfrage-Ergebnisse verwendet werden?

Ich weiss, sicherlich kommt jetzt die erste Frage, warum so
umständlich…

nicht umständlich, eher „falsch“ …:wink:

Ich bin aber in Sachen Programmierung nicht so fitt, dass ich
den Kalender hätte besser machen können.

Wenn die Tabelle(n) richtig normalisiert würden, gäbe es keine Veranlassung zu aufwendigem VBA-Code (allerdings zu einem „bisschen“ schon)

Ausserdem läuft er soweit für meine Zwecke ganz gut, bis auf
das Problem mit der Abfrage.

naja, bis hierhin vielleicht. Die nicht funktionierende Abfrage ist ein Schuß vor den Bug…

Also, hat hier jemand eine Idee wie ich es dennoch hinbekomme?

Ja, aber nicht „dennoch“, sondern:

Tabellen erstellen:

tblTermine:

TermID (PK, Autowert)
Term_Datum (Datum/Uhrzeit)
Term_Zeit (Text, oder je nach Anforderung als Datum/Uhrzeit)
Term_PersID (FK, Zahl, Long, PersID aus tblPersonen)…

tblPersonen:
PersID (PK,Autowert)
Pers_Vorname
Pers_Nachname
Pers_GebDatum

Endlosformular („frmTermine“) mit Datenherkunft „tblTermine“ erstellen. Auswahl einer Person zu einer bestimmten Uhrzeit mittels Kombifeld, das seine Daten aus tblPersonen bezieht mit gebundenener Spalte zu „PersID“

Ungebundenes Einzelformular mit einem Kalender-Steuerelement und einem UFO-Steuerelement, das das Form „frmTermine“ anzeigt (–> „Herkunftsobjekt“) und mit Eigenschaftseinstellung „Verknüpfen von/nach“ auf Term_Datum und Kalender-Steuerelement(-Feld).

Je nach Anforderung können die Zeiten pro DAtum jeweils manuell eingetragen oder mit ein bisschen VBA auch als Zeitintervalle über den ganzen Tag „automatisch“ eingetragen werden.

Gruß
Franz, DF6GL

Hallo Franz,

erstmal vielen Dank für die ausführliche Antwort.

Ich denke, die Tabellenstruktur ist völlig ungeeignet und wird
immer zu Problemen führen…

Da hast du sicherlich Recht.

Warum „ungebunden“?

Ok, das Formular basiert ja auf die angesprochene Abfrage, da hab ich mich falsch ausgedrückt.

WIE lautet der SQL-String der Abgfrage und WO sollen die
Abfrage-Ergebnisse verwendet werden?

SELECT Termine_Veysel.tDatum, Termine_Veysel.tZeit0800, Termine_Veysel.tZeit0820, Termine_Veysel.tZeit0830, Termine_Veysel.tZeit0840, Termine_Veysel.tZeit0900, *
FROM Termine_Veysel
WHERE (((Termine_Veysel.tZeit0800)=Eval("[Forms]![Terminkalender_F]![UF Übersicht_Veysel]!Patient_cbo.Column(1)"))) OR (((Termine_Veysel.tZeit0820)=Eval("[Forms]![Terminkalender_F]![UF Übersicht_Veysel]!Patient_cbo.Column(1)"))) OR (((Termine_Veysel.tZeit0830)=Eval("[Forms]![Terminkalender_F]![UF Übersicht_Veysel]!Patient_cbo.Column(1)"))) OR (((Termine_Veysel.tZeit0840)=Eval("[Forms]![Terminkalender_F]![UF Übersicht_Veysel]!Patient_cbo.Column(1)"))) OR (((Termine_Veysel.tZeit0900)=Eval("[Forms]![Terminkalender_F]![UF Übersicht_Veysel]!Patient_cbo.Column(1)")));

Das nur ein Ausschnit, es werden alle Felder mit „OR“ abgefragt.
Angezeigt in einem UFO.

nicht umständlich, eher „falsch“ …:wink:

Ja, das denke ich mir…

Tabellen erstellen:

tblTermine:

TermID (PK, Autowert)
Term_Datum (Datum/Uhrzeit)
Term_Zeit (Text, oder je nach Anforderung als Datum/Uhrzeit)
Term_PersID (FK, Zahl, Long, PersID aus tblPersonen)…

tblPersonen:
PersID (PK,Autowert)
Pers_Vorname
Pers_Nachname
Pers_GebDatum

Das habe ich im Ptinzip schon soweit realisiert, bis auf die Tabellen für den Terminkalender.

Endlosformular („frmTermine“) mit Datenherkunft „tblTermine“
erstellen. Auswahl einer Person zu einer bestimmten Uhrzeit
mittels Kombifeld, das seine Daten aus tblPersonen bezieht mit
gebundenener Spalte zu „PersID“

Ungebundenes Einzelformular mit einem Kalender-Steuerelement
und einem UFO-Steuerelement, das das Form „frmTermine“ anzeigt
(–> „Herkunftsobjekt“) und mit Eigenschaftseinstellung
„Verknüpfen von/nach“ auf Term_Datum und
Kalender-Steuerelement(-Feld).

Ja, das habe ich auch schon soweit…

Je nach Anforderung können die Zeiten pro DAtum jeweils
manuell eingetragen oder mit ein bisschen VBA auch als
Zeitintervalle über den ganzen Tag „automatisch“ eingetragen
werden.

So, jetzt wirds lustig. Genau das brauche ich.
Ein Endlosformular in dem ich dann Terminzeit und den Namen eintrage hatte ich schon, möchte ich aber nicht :smile:
Wenn ich das Datum aufrufe, sollten schon alle Uhrzeiten angezeigt werden, damit sofort ersichtlich ist, welche Uhrzeit schon vergeben ist und welche Zeiten noch frei sind.
Um eben das umzusetzen fehlt es mir an Kenntnisse, daher der umständliche (bzw falsche) Weg mit jede Uhrzeit ein Feld.
Dazu kommt, dass ich zu jeder Uhrzeit max. 2 Personen eintagen möchte.

Gibt es hier eigentlich die Möglichkeit einen Screenshot zu posten?
Dann wäre die Sache wohl noch verständlicher.

Grüße, Markus

Hallo Wolfgang,

Moin Moin,

die Frage ist: welcher Weg soll denn beschritten werden = was
soll als Ergebnis raus kommen? Hast du mal einen Screenshot,
eine Zeichnung oder eine genaue Beschreibung?

Habe einen Screenshot, wie kann ich den denn hier einstellen.
Habe mich hir neu angemeldet und noch nicht alles erkundet.

Ansonsten habe ich df6gl auch geantwortet und du bekommst so einen genaueren Einblick, was ich eigentlich vorhabe.

Grüße, Markus

Moin Moin,

einen Screenshot kannst du wie hier beschrieben einfügen:
FAQ:2606

Hallo,

SELECT Termine_Veysel.tDatum, Termine_Veysel.tZeit0800,
Termine_Veysel.tZeit0820, Termine_Veysel.tZeit0830,
Termine_Veysel.tZeit0840, Termine_Veysel.tZeit0900, *
FROM Termine_Veysel
WHERE
(((Termine_Veysel.tZeit0800)=Eval("[Forms]![Terminkalender_F]![
UF Übersicht_Veysel]!Patient_cbo.Column(1)"))) OR
(((Termine_Veysel.tZeit0820)=Eval("[Forms]![Terminkalender_F]![
UF Übersicht_Veysel]!Patient_cbo.Column(1)"))) OR
(((Termine_Veysel.tZeit0830)=Eval("[Forms]![Terminkalender_F]![
UF Übersicht_Veysel]!Patient_cbo.Column(1)"))) OR
(((Termine_Veysel.tZeit0840)=Eval("[Forms]![Terminkalender_F]![
UF Übersicht_Veysel]!Patient_cbo.Column(1)"))) OR
(((Termine_Veysel.tZeit0900)=Eval("[Forms]![Terminkalender_F]![
UF Übersicht_Veysel]!Patient_cbo.Column(1)")));

vergiss das einfach…

Das nur ein Ausschnit, es werden alle Felder mit „OR“
abgefragt.
Angezeigt in einem UFO.

nicht umständlich, eher „falsch“ …:wink:

Ja, das denke ich mir…

ok, dann mußt Du das aber auch richtigstellen…

Tabellen erstellen:

tblTermine:

TermID (PK, Autowert)
Term_Datum (Datum/Uhrzeit)
Term_Zeit (Text, oder je nach Anforderung als Datum/Uhrzeit)
Term_PersID (FK, Zahl, Long, PersID aus tblPersonen)…

tblPersonen:
PersID (PK,Autowert)
Pers_Vorname
Pers_Nachname
Pers_GebDatum

Das habe ich im Ptinzip schon soweit realisiert,

gut…

bis auf die
Tabellen für den Terminkalender.

dann realisiere das auch…

Endlosformular („frmTermine“) mit Datenherkunft „tblTermine“
erstellen. Auswahl einer Person zu einer bestimmten Uhrzeit
mittels Kombifeld, das seine Daten aus tblPersonen bezieht mit
gebundenener Spalte zu „PersID“

Ungebundenes Einzelformular mit einem Kalender-Steuerelement
und einem UFO-Steuerelement, das das Form „frmTermine“ anzeigt
(–> „Herkunftsobjekt“) und mit Eigenschaftseinstellung
„Verknüpfen von/nach“ auf Term_Datum und
Kalender-Steuerelement(-Feld).

Ja, das habe ich auch schon soweit…

Wirklich?

Je nach Anforderung können die Zeiten pro DAtum jeweils
manuell eingetragen oder mit ein bisschen VBA auch als
Zeitintervalle über den ganzen Tag „automatisch“ eingetragen
werden.

So, jetzt wirds lustig. Genau das brauche ich.

OK, dann mach es doch und verfolge diesen weg weiter… Konkrete Probleme dazu bekommen wir doch gelöst…

Ein Endlosformular in dem ich dann Terminzeit und den Namen
eintrage hatte ich schon, möchte ich aber nicht :smile:

Warum nicht?

Wenn ich das Datum aufrufe, sollten schon alle Uhrzeiten
angezeigt werden, damit sofort ersichtlich ist, welche Uhrzeit
schon vergeben ist und welche Zeiten noch frei sind.

sowas geht automatisch, wenn ein Datum im HF ausgewählt wird.

Um eben das umzusetzen fehlt es mir an Kenntnisse, daher der
umständliche (bzw falsche) Weg mit jede Uhrzeit ein Feld.
Dazu kommt, dass ich zu jeder Uhrzeit max. 2 Personen eintagen
möchte.

Den falschen Weg weiterzufolgen macht ihn nicht richtiger…

Bei den zwei Personen können wir in diesem Fall einen Kompromiss bgl. den Normalisierungsregeln eingehen und zwei Felder für die beiden Namen spendieren.

Gibt es hier eigentlich die Möglichkeit einen Screenshot zu
posten?

weiß ich nicht, habe noch nie einen hier gesehen.

Dann wäre die Sache wohl noch verständlicher.

naja, ich verstehe die Sache auch so… :wink:

schreib mir mal eine Mail an ed.xmg (tä) lg6fd (von rechts nach links lesen :wink: )

Gruß
Franz, DF6GL

Hallo Wolfgang,

danke für die Links mit den Kalendervorschlägen.
Einen davon habe ich ja schon als Vorlage zur Hilfe genommen.
Nur war halt das Problem, dass ich alle Uhrzeiten aufeinmal sehen möchte, also egal ob schon vergeben oder noch frei.

Hier mal ein Screenshot (danke dafür) :

Werde mich wohl über die Feiertage mal mit den Anlei…

Hallo Franz,

danke für die ausführliche Anleitung.
Werde mich wohl mal über die Feiertage damit beschäftigen.

Wirklich?

Sieht im Moment so aus:

Oben die Combo zum Auswählen, unten links möchte ich…

Hallo Franz,

wollte einmal nachfragen, ob du meine Eimail bekommen hast und ob du noch etwas eingefallen ist, wie ich zu einer Lösung kommen.

Viele Grüße,
Markus

Hallo Markus,

habe keine Email erhalten, die ich mit Dir und Deinem Problem in Übereinstimmung bringen könnte…

Hallo Markus,

habe keine Email erhalten, die ich mit Dir und Deinem Problem
in Übereinstimmung bringen könnte…

Hallo Franz,

habe dir soeben noch einmal an die gmx email gemailt.
Hoffe du erhälst die Mail jetzt.

Grüße, Markus