Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: ms67 am Mai 12, 2014, 08:53:59

Titel: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: ms67 am Mai 12, 2014, 08:53:59
Hallo Forengemeinde.

ich wende mich heute mit einem Problem an euch, welches ich seit Tagen

versuche zu lösen.
Ich habe in meinem Programm einen Urkundendruck angelegt. Die Abfrage dazu (A_Urkunden) habe ich mit Hilfe der Forengemeinde erstellt. (Top 3 etc.)

Es werden die besten 3 einer Jeden Klasse (Damen / Herren etc.) und der jeweiligen Bogenklasse (Langbogen, Recurve etc.) ausgegeben.

Mein Problem: Manchmal passt das, manchmal scheint Access einfach beliebige Namen ungeachtet der Wertung einzusetzten. Die Gesamtergebnisliste ist korrekt. Lediglich die Urkunden passen nicht. Kann mir jemand helfen?

Vielen Dank im Voraus für eure Mühe.

Hier die DB zum Download:

https://drive.google.com/file/d/0Bzo61QTm-cJTTUJKcEJHRTFFb28/edit?usp=sharing (https://drive.google.com/file/d/0Bzo61QTm-cJTTUJKcEJHRTFFb28/edit?usp=sharing)
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: DF6GL am Mai 12, 2014, 09:49:17
Hallo,

da muss ich einem Schützenkollegen gleich helfen    :)


Kann das nicht nachvollziehen...

Der Bericht spiegelt korrekt die Daten aus der Abfrage nach... 


Lediglich die Sortierung der Abfrage unterscheidet sich vom Bericht, weil sich ein Bericht nach seiner eigenen Sortierung richtet und nicht nach der in der Abfrage.

Zudem:
--DB komprimieren/Reparieren
--In JEDEM Modul Option Explicit einbauen.
-- Im VBA-Editor den Code kompilieren und speichern. Alle angezeigten Fehler eliminieren! (hab ich zunächst auch erst machen müssen.)
--im Berichtslayout würde ich alle Felder aus der Datenherkunft (Abfrage) als Textfelder einbauen, auf "unsichtbar" stellen und diese Textfeldnamen in anderen Textfeldern zur Weiterverwendung einsetzen.


Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: ms67 am Mai 12, 2014, 10:38:54
Hallo
Danke erst einmal für deine Mühe
ich bin jetzt zugegeben überfordert mit der Info. Was muss ich jetzt genau machen. Die Ergebnisliste (bericht) zeigt ja eine andere Reihenfolge als die Urkunde an.

Die Abfrage an sich ist ja schon im Ergebnis falsch. Vergleiche das mal mit der Ergebnisliste (Bericht)

ZitatDB komprimieren/Reparieren
--In JEDEM Modul Option Explicit einbauen.
-- Im VBA-Editor den Code kompilieren und speichern. Alle angezeigten Fehler eliminieren! (hab ich zunächst auch erst machen müssen.)
--im Berichtslayout würde ich alle Felder aus der Datenherkunft (Abfrage) als Textfelder einbauen, auf "unsichtbar" stellen und diese Textfeldnamen in anderen Textfeldern zur Weiterverwendung einsetzen.

Das erste hab ich gemacht (Vewaltung)
die nächsten Punkte verstehe ich nicht (wie macht man das) Ich bin totaler Anfänger
Den letzten Punkt verstehe ich so, dass ich die Felder nur zur Sicherheit (z.B Sortierung, Berechnung etc) mit reinnehme?


Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: DF6GL am Mai 12, 2014, 11:59:22
Hallo,

und nun verstehe ich das nicht:

"Die Ergebnisliste (bericht) zeigt ja eine andere Reihenfolge als die Urkunde an."


Der Bericht ist doch die Urkunde.. (der Urkunden-Druck) ?



"Die Abfrage an sich ist ja schon im Ergebnis falsch"

Das hast doch aber anfangs als richtig beschrieben...  Liefert die Abfrage nun die richtigen Ergebnisse (unabhängig von einer Sortierung/Reihenfolge) oder nicht ?

(Hatte noch was vergessen zu sagen:  Nimm die Sortierung aus der Abfrage heraus!)

Zitat
die nächsten Punkte verstehe ich nicht (wie macht man das) Ich bin totaler Anfänger

Alt F11 drücken, der VBA-Editor poppt auf, dort die beschriebenen Maßnahmen durchführen.

ZitatDen letzten Punkt verstehe ich so, dass ich die Felder nur zur Sicherheit (z.B Sortierung, Berechnung etc) mit reinnehme?


Das ist jetzt zu komplex für eine genaue Beschreibung. Ich habe jedenfalls festgestellt, dass es Probleme mit einem Bericht geben kann, wenn  Felder aus der Datenherkunft (an kein Steuerelement gebunden) für die Berechnung (Verwendung) in Ausdrücken für Steuerelementinhalte benutzt werden..
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: ms67 am Mai 12, 2014, 12:12:53
Hallo, danke für das ausführliche Feedback

Zur besseren Erklärung: Es gibt den Bericht Ergebnis und den Bericht Urkunde (Urkunde Jugend ist erstmal egal)
In der Ergebnisliste steht zb. Hans Vogel Recurve blank auf dem  zweiten Platz.
Bei der Urkunde taucht der aber gar nicht auf!
Die Abfrage liefert scheinbar das falsche Ergebnis.


Alt F11 öffnet den VBA Editor. Aber was ich ich da genau machen?

Bin auf Debuggen gegangen und dann auf "kompilieren von Datenbank1"

Es erscheint eine Fehlermeldung, das ein Schlüsselwort (me) unzulässig ist. (bei einem konvertierten Makro)
Ich muss zugeben, dass ich gar nicht weiß was ich da gerade mache :-[
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: DF6GL am Mai 12, 2014, 13:18:08
Hallo,

naja, Du überprüfst den hinterlegten Code...

Was Du beim besagten Fehler sieht, ist eine Sub-Prozedur, die aus einem Formular(-Klasse) in ein allgemeines Modul verschoben/kopiert wurde.  Dann ist "ME" als Referenz auf das akt. Form nicht zulässig..

Kurz: Lösch die Prozedur aus dem Modul und kompiliere erneut..... (Vorher Option Explicit nicht vergessen!)

Wenn Du nicht weißt, was Du gerade machst, dann ist die DB vermutlich nicht von Dir erstellt worden. Es wäre dann sinnvoll, sich erst mit den Grundlagen von Access zu beschäftigen, sonst Du kommst Du allein nicht weiter. Du könntest auch den Autor bitten, den Code (bzw. die gesamte DB ) auf Vordermann zu bringen.

Hast Du nun die Sortierung aus der Abfrage entfernt und den Urkunde-Bericht nochmal angesehen und geprüft?
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: ms67 am Mai 12, 2014, 13:56:57
Hallo nochmal,
die DB stammt von mir, ich wußte nur nicht, was das debuggen zu bedeuten hat. Ich vermute jetzt: Fehlersuche im Code?

Die Sortierung habe ich rausgenommen, aber es kommt immer noch das falsche Ergebnis raus :-\
Ich komme da einfach nicht weiter.
Könntest Du Dir mal den hinterlegten Code in der Sql Ansicht anschauen? Dieser wurde von mir im try  and error Verfahren erstellt.

Nachtrag:
Ich habe das jetzt kompiliert und es kommt keine Fehlermeldung mehr. Der Punkt ist jetzt nicht mehr verfügbar. ist das so korrekt?

Die Abfrage liefert immer noch das falsche Resultat, wo liegt den bloß der Fehler??? Zumal es offensichtlich bei einigen Klassen korrekt ist
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: DF6GL am Mai 12, 2014, 18:30:24
Hallo,

nochmal:
Ist das Abfrageergebnis korrekt oder nicht?
Ist der Urkunde-Bericht entspr. dem Abfrageergebnis korrekt oder nicht?

Was ist die "Ergebnisliste" ?  Soll das das Ergebnis der Abfrage "A_Urkunde" sein?

Ob die Abfrage die erwarteten und "richtigen" Daten liefert, kann ich ad hoc nicht sagen.
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: ms67 am Mai 12, 2014, 19:24:59
Also die Urkunde basiert auf dem Abfrageergebnis der Abfrage "A-Urkunde"
Das Urkundenergebnis entspricht dem Abfrageergebnis. Allerdings ist das Ergebnis der Abfrage falsch. Es sollen die jeweils ersten 3 der Startklasse (Damen/Herren etc.) in der jeweiligen Bogenklasse (Langbogen, Recurve etc.) ausgegeben werden.
Das macht die Abfrage aber nicht.
Es gibt noch einen weiteren Bericht mit dem Namen "Ergebnis". Hier sind alle Schützen aufgeführt (nicht nur die ersten 3). Dieser Bericht ist korrekt. Vergleicht man hier den Rang, so unterscheidet sich dieser von dem angegebenen Rang auf der Urkunde.

Ich hoffe es ist so deutlich geworden.

Danke noch mal für die Hilfe!!!
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: ms67 am Mai 13, 2014, 11:43:42
Keiner eine Idee :-[
ich hab schon alle Möglichen Sachen probiert, ohne Erfolg.
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: DF6GL am Mai 13, 2014, 19:10:55
Gemach , gemach,  so viel Zeit habe ich momentan nicht..
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: DF6GL am Mai 13, 2014, 19:23:19
Hallo,


also ich kann hier keine Unstimmigkeit feststellen.  Erzähl mal, bei welchen Datensätzen genau ein Problem liegen soll...
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: ms67 am Mai 13, 2014, 19:54:08
Hallo,
schau dir bitte mal den Bericht Ergebnis an. Also die Siegerliste . Auf Platz 2 bei den Herren Recurve ist Hans Vogel.
Nun schau Dir bitte die Urkunde an. Auf Platz 2 ist Rolf Mutziputzi.
Die Siegerliste (mit allen Teilnehmern) ist völlig korrekt. Nur bei der Urkunde (einschl. Ihrer Abfrage) stimmt was nicht.
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: DF6GL am Mai 13, 2014, 21:33:41
Hallo,

in der Unterabfrage fehlt " order by t1.Punkte desc, t1.Kills desc"


Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: ms67 am Mai 14, 2014, 08:22:27
Hallo nochmal
ich habe die Abfrage wie folgt eingegeben:
SELECT T1.*, tbl_Bogen.Bogentyp, tbl_Startklasse.Startklasse, tbl_Turnier.Turnierbezeichnung, tbl_Turnier.Turnierdatum
FROM tbl_Turnier, tbl_Bogen INNER JOIN (tbl_Startklasse INNER JOIN tbl_teilnehmer AS T1 ON tbl_Startklasse.ID_Startklasse = T1.fid_Startklasse) ON tbl_Bogen.ID_Bogen = T1.fid_Bogenklasse
WHERE (((T1.ID_Teilnehmer) In (SELECT   TOP 3 ID_Teilnehmer             FROM     tbl_teilnehmer             WHERE    fid_Startklasse = T1.fid_Startklasse             AND      fid_Bogenklasse = T1.fid_Bogenklasse             AND Punkte>0)))
ORDER BY T1.Punkte DESC , T1.Kills DESC;


leider geht es immer noch nicht. Wo muss ich da noch korrigieren?
Für deine Hilfe schon mal ganz herzlichen Dank. Bin totaler Anfänger und steh entsprechend auf dem Schlauch
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: DF6GL am Mai 14, 2014, 08:43:41
Hallo,

WHERE (((T1.ID_Teilnehmer) In (SELECT   TOP 3   T2.ID_Teilnehmer             FROM     tbl_teilnehmer     as T2          WHERE    T2.fid_Startklasse = T1.fid_Startklasse             AND      T2.fid_Bogenklasse = T1.fid_Bogenklasse             AND T2.Punkte>0   ORDER BY T2.Punkte DESC , T2.Kills DESC   )))


btw:  Im Falle gleicher Punkte-Zahl und gleicher Kills-Zahl (--> gleicher Rang) ergibt das Komplikationen.....
Titel: Re: Fehlersuche in Abfrage für Urkundendruck
Beitrag von: ms67 am Mai 14, 2014, 10:03:50
Vielen Herzlichen Dank, es klappt! Das hätte ich nie hinbekommen!
;D