Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: sashstyle am Dezember 20, 2016, 21:56:49

Titel: abfrage in bericht
Beitrag von: sashstyle am Dezember 20, 2016, 21:56:49
Ausgangssituation:

tblFragen (mit 16 "Zeilen" - jede ist eine Frage)
tblAntworten (mit 4 "Zeilen" - jede ist eine Antwort)

diese ergeben die Abfrage mit folgender "Ausgabe":

Anzahl der gegebenen Antworten pro Frage

Bsp:
Frage 1 Antwort 1 Anzahl 3x
Frage 1 Antwort 2 Anzahl 1x
Frage 1 Antwort 3 Anzahl 0x
Frage 2 Antwort 1 Anzahl 1x
Frage 2 Antwort 2 Anzahl 2x
Frage 2 Antwort 3 Anzahl 1x

(verständlich?)

So, nun zu meinem Problem:

Der Bericht kann nur so erstellt werden wie oben aufgeführt, also pro Frage/Antwort/Anzahl eine Zeile

Ich HÄTTE ABER GERN:

a) pro Frage eine Zeile
b) in der Zeile hinter der Frage die Anzahl für Antwort 1 dahinter für Antwort 2 und dann Antwort 3 am Ende

...nur wie?

Vielen Dank für eure Hilfe!
Titel: Re: abfrage in bericht
Beitrag von: DF6GL am Dezember 20, 2016, 22:30:54
Hallo,

das "Wie"  erfährst Du hier:   http://dbwiki.net/wiki/VBA_Tipp:_Liste_per_SQL_aufbauen
Titel: Re: abfrage in bericht
Beitrag von: sashstyle am Dezember 20, 2016, 22:59:16
Hi Franz,

Danke für den Link - mit SQL kenn ich mich leider null aus.
Den Code hab ich mir angeschaut und kann damit leider nix anfangen - ich weiß auch nicht wie ich das in einen Bericht einbauen könnte...

Zudem bin ich mir nicht sicher ob die unter dem Link genannte Aufgabenstellung die korrekt für meinen Fall ist - oder "denke" ich falsch?

Lieben Dank
Sascha
Titel: Re: abfrage in bericht
Beitrag von: sashstyle am Dezember 26, 2016, 14:15:51
gibt es sonst keine hilfe mehr?
Titel: Re: abfrage in bericht
Beitrag von: DF6GL am Dezember 26, 2016, 14:42:26
Hallo,

naja, um welche Hilfe soll es sich handeln?

Grundkurs kann ich Dir nicht geben...

Aber vielleicht hilft ja schon eine Kreuztabellenabfrage weiter:

Wähle im Ribbon-Band "Erstellen/Abfrageassistent" und im Fenster "Neue Abfrage" den "Kreuztabelleassistent".


Titel: Re: abfrage in bericht
Beitrag von: MaggieMay am Dezember 26, 2016, 23:21:17
@sashstyle:
Zeige die Strukturen der beteiligten Tabellen, am einfachsten per Screenshot aus dem Beziehungsfenster, dann kann man dir einen konkreten Vorschlag für den Code einer in diesem Fall sicherlich zielführenden Kreuztabellenabfrage machen.
Titel: Re: abfrage in bericht
Beitrag von: sashstyle am Dezember 27, 2016, 08:00:07
Hallo MaggieMay,

hier der Screenshot.

Das mit der Kreuztabellenabfrage klang für mich auch logisch - bzw. hab es mal mit einer PivotTabelle probiert, doch ich bekomm es dann eben nicht so "schön" wie gewünscht in den Bericht.


Ich bin kein SQL´ler und kenne mich damit nicht so aus, dass ich selbst etwas "schreiben" könnte, daher arbeite ich immer gern in den grafischen Oberflächen...

Lieben Dank
Sascha
Titel: Re: abfrage in bericht
Beitrag von: MzKlMu am Dezember 27, 2016, 09:44:35
Hallo,
wie aus der Gleichheit der Tabellen unschwer zu erkennen ist, sind das zu viele Tabellen. Es gibt ja ein gemeinsames Merkmal für die Fragen, nämlich Ban und Htl.
Daher genügt bei den Fragen ein Feld zur Einordung der Frage als Ban oder Htl. Dieses Unterscheidungsfeld kommt auch in die Tabelle mit den Antworten.

Damit lassen sich alle Antworten eindeutig nach den beiden Fragengruppen unterscheiden. Die Unterscheidung in extra Tabellen ist überflüssig und verkompliziert nur unnötigerweise alle Auswertungen.
Es sind auch einige Beziehungen zu korrigieren. In die Tabelle Befragung muss ein Fremdschlüssel zum Hotel und bei den Antworten muss der FS zum Hotel raus. Dafür muss dort entweder eine Gastnummer rein (wenn der Gast anonym bleibt) oder eine FS zum Gast wenn es für den Gast eine Tabelle gibt. Ich habe mal versucht das in einem Bild (siehe Anhang) darzustellen.

Bevor Du also ans Auswerten gehst, sollte erst mal das Datenmodell geändert werden.

Ich habe gerade festgestellt, dass wir das Datenmodell schon mal diskutiert haben.
Daran kannst Du Dich weiter orientieren.
Titel: Re: abfrage in bericht
Beitrag von: MaggieMay am Dezember 28, 2016, 00:26:17
Hi,

du hättest auch einfach nur das zeigen können, von dem eingangs die Rede war:
- zwei Tabellen -> Struktur!
- eine Abfrage -> SQL-Code!
Dann hätte man dir einen konkreten Vorschlag machen können und dessen Umsetzung wäre dann ganz allein dein Problem. ;-)
Titel: Re: abfrage in bericht
Beitrag von: sashstyle am Dezember 28, 2016, 08:14:35
Hi zusammen,
(und Sorry falls ich es zu umständlich gepostet hatte!)
gut vielleicht hätte ich in meinem Beziehungsfenster die BAN´s raus lassen sollen - das ist jetzt natürlich umständlicher ... kurz zum Hintergrund: es gibt Fragen fürs HOTEL (Htl) und fürs BANKETT (Ban) - daher ist die Struktur doppelt enthalten.

Wenn es rein nur ums Hotel geht dann sieht das Beziehungsfenster so aus wie der jetzige Anhang.

Klaus, ja das Thema hatten wir schon im Frühjahr mal und ich habe den Sommer überhaupt nichts daran gearbeitet und bin jetzt wieder dran - von dir kam auch die Struktur mit den vier Tabellen (Fragen, mögliche Antworten, Befragungen und GastAntworten) -- diese habe ich (lediglich) meinen Bedürfnissen etwas angepasst :-)

Die Tabelle Hotel ist nicht wichtig!

Ich habe im Hintergrund bei HtlFragen insgesamt 16 Fragen drin stehen und es gibt 4 möglicheAntworten (zufrieden, weniger zufrieden, unzufrieden, unbeantwortet ---> 1,2,3,0).
In meinem Bericht möchte ich jetzt pro Frage eine Zeile (vorne die Frage und dahinter die Anzahl der gegebenen Antworten für 1, 2, 3 und 0) ... ich schaff es nur dass pro Zeile eine Frage und eine Antwort aufgeführt wird...


Titel: Re: abfrage in bericht
Beitrag von: MaggieMay am Dezember 30, 2016, 23:05:09
Hallo,

versuche es mal hiermit:
TRANSFORM Count(t_bewertungen.bewID) AS AnzahlvonBewertungen
SELECT t_fragen.frageText, Count(t_bewertungen.bewID) AS [Gesamtanzahl Bewertungen]
FROM t_fragen INNER JOIN (t_antworten INNER JOIN t_bewertungen ON t_antworten.antwortID = t_bewertungen.antwortID_f) ON t_fragen.frageID = t_bewertungen.frageID_f
GROUP BY t_fragen.frageText
PIVOT t_antworten.antwortText;

allerdings musst du noch die Namen anpassen.
Ich musste mir erst ein Beispiel erstellen, Kreuztabellenabfragen über mehrere Tabellen schüttel ich nicht einfach so aus dem Ärmel. ;-)
Titel: Re: abfrage in bericht
Beitrag von: sashstyle am Januar 04, 2017, 22:21:42
hi maggiemay,

super - so, hab es angepasst und es klappt mit diesem code:

TRANSFORM Count(HtlAntworten.HtlAntwortenID) AS AnzahlvonHtlAntwortenID
SELECT HtlFragen.HtlFrageText
FROM HtlFragen INNER JOIN (HtlBefragungen INNER JOIN (HtlAntworten INNER JOIN HtlGastantworten ON HtlAntworten.HtlAntwortenID = HtlGastantworten.HtlAntwortenID_F) ON HtlBefragungen.HtlBefragungID = HtlGastantworten.HtlBefragungID_F) ON HtlFragen.HtlFrageID = HtlGastantworten.HtlFrageID_F
GROUP BY HtlFragen.HtlFrageID, HtlFragen.HtlFrageText
ORDER BY HtlFragen.HtlFrageID
PIVOT HtlAntworten.HtlAntwortenText;


daraus habe ich einen bericht gebastelt - sieht so aus wie ich es wollte!

DANKE!

weiter gehts:

...bekomm ich irgendwo "problemlos" noch folgendes hin:

pro frage - wie oft wurde "eine" antwort gegeben
(keine bestimmte antwortmöglichkeit sondern einfach nur die anzahl der gegebenen antworten

kann ich das noch irgendwie in meinem bericht einbauen?

der bericht sieht im grunde aus wie eine kreuztabelle - ich sollte also nur noch eine letzte spalte mit der anzahl-antworten-für-diese-frage haben...

vielen dank und grüße
sascha