Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Tabellenfeld im Bericht anzeigen

Begonnen von mad, August 08, 2019, 19:34:55

⏪ vorheriges - nächstes ⏩

mad

Hallo Zusammen,

bräuchte wieder mal Hilfe.
Ich habe einen Bericht der auf einer entsprechenden Abfrage beruht. Im Bericht möchte ich nur den Ort der gefilterten Person anzeigen lassen. Diese Abfrage ist bereits sehr umfangreich und wenn ich die Ortsteile-Tab einbinden möchte kommt folgende Meldung:
ZitatDie SQL-Anweisung konnte nicht ausgeführt werden, da sie mehrdeutige Inklusionsverknüpfungen enthält. Damit eine der Verknüpfungen zuerst ausgeführt wird, müssen Sie eine separate Abfrage erstellen, die die erste Verknüpfung ausführt, und dann die Abfrage in die SQL-Anweisung einschließen. (Fehler 3258)

Nun habe ich ein ungebundenes Textfeld eingefügt und folgendes ausprobiert:
=DomWert("Ort";"Ortsteile")
Nun zeigt das Feld allerdings nur den ersten Wert der Tabelle "Ortsteile".

Als ergänzendes Kriterium wollte ich die Ortkenn aus Personal mit der Ortkenn aus Ortsteile vergleichen und so den Ort der Person angezeigt bekommen.
=DomWert("Ort";"Ortsteile";"Ortkenn"=[Ortkenn].[Personal])
Dann zeigt das Textfeld #Name?

In beiden Tabellen ist "Ortkenn" ein Textfeld.
Was mache ich falsch?

Über Hilfe würde ich mich freuen.

Gruss
mad

DF6GL

Hallo,
Zitat
Diese Abfrage ist bereits sehr umfangreich

und (sehr wahrscheinlich) falsch aufgebaut,  bzw. es liegt ein falsches Tabellenkonzept zugrunde....

Zeige mal den SQL-String dieser Abfrage...

Zitat=DomWert("Ort";"Ortsteile";"Ortkenn"=[Ortkenn].[Personal])

Neben der falschen Syntax:

Was hat eine "Ortkenn"(ung) mit "Personal" zu tun?

Woher kommt "[Ortkenn].[Personal]" überhaupt?

Wenn, dann eher so:

=DomWert("Ort";"Ortsteile";"Ortkenn=" & [Ortkenn])

Dabei ist "[Ortkenn]" das Berichtsfeld, das den ID-Wert des Ortes enthält.

mad

Hallo,

hier SQL-String der Abfrage:
SELECT Einsaetze.ADatumE, Einsaetze.EinsatzKenn, Einsaetze.EinsatzArten, Einsaetze.EinsatzAdresse, [Registrierung-Einsatz].EinsStdN, Einsaetze.EBemerkung, Personal.Name, [Registrierung-Einsatz].Atemschutz, Sum(DateDiff("n",0,[EinsStdN])) AS EinsStdNMin, Sum(DateDiff("n",0,[PAEinsStdN])) AS PAEinsStdNMin, Personal.Ortkenn
FROM Personal RIGHT JOIN (Einsaetze INNER JOIN [Registrierung-Einsatz] ON Einsaetze.EinsatzKenn = [Registrierung-Einsatz].Einsaetze) ON Personal.Namekenn = [Registrierung-Einsatz].Name
GROUP BY Einsaetze.ADatumE, Einsaetze.EinsatzKenn, Einsaetze.EinsatzArten, Einsaetze.EinsatzAdresse, [Registrierung-Einsatz].EinsStdN, Einsaetze.EBemerkung, Personal.Name, [Registrierung-Einsatz].Atemschutz, Personal.Ortkenn
HAVING (((Personal.Name) Like [Namen eingeben *]));


ZitatWas hat eine "Ortkenn"(ung) mit "Personal" zu tun?

Woher kommt "[Ortkenn].[Personal]" überhaupt?
Die Ortkenn gibt den Wohnort der Person wieder.

ZitatWenn, dann eher so:

=DomWert("Ort";"Ortsteile";"Ortkenn=" & [Ortkenn])

Jetzt zeigt das Textfeld #Fehler.


Gruss
mad

DF6GL

Hallo,

die SQL dürfte wegen der Datediff- und sonstigen Berechnungen recht langsam ablaufen.

Zudem:

Verwende Eckklammern und das Feld "Name" (--> "[Name]")

und entferne die Having-Condition, benutze anstatt eine Where-Condition.


Ich bin von einem numerischen ID-Feld ausgegangen. Wenn es sich um Text handelt, dann so:

=DomWert("Ort";"Ortsteile";"Ortkenn='" & [Ortkenn] & "'")

mad

Danke für die Unterstützung.
Klappt super.


Danke
mad