Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: TTB am Oktober 09, 2016, 14:09:21

Titel: laufende Nummerierung in Parameterabfrage
Beitrag von: TTB am Oktober 09, 2016, 14:09:21
Hallo liebe Leute,

ein kleines Vorwort: ja, ich habe bereits gesucht und nein die Lösung von Donkarl´s FAQ 3.11 hilft irgendwie auch nicht.

Wenn ich in einer Abfrage die jeweiligen Datensätze durchnummerieren möchte, erscheint statt der laufenden Nummer bzw. der Position in der Abfrage (je nach Abwandlung des Codes) IMMER ein unverständlicher Wert, ein Fehler oder (wenn ich den Beispielcode vom AccessSupport oder Donkarl ohne Änderung übernehme) die Position des Datensatzes in der Haupttabelle. Den Code habe ich grad leider nicht dabei, bin unterwegs und recherchiere nur.
Was kann ich tun? Jemand eine Idee woran das liegen könnte?

lG
Chris
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: Hondo am Oktober 09, 2016, 15:30:03
Hallo,
und warum zeigst du uns deine Abfrage nicht einfach?

Andreas
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: TTB am Oktober 09, 2016, 15:39:31
Siehe oben! Ich bin nicht am Rechner, mit dem ich die Datenbank mache, sondern habe nur recherchiert, um eventuell schon einen Lösungsansatz zu haben, wenn ich wieder dran sitze.

Sollte ich bin dahin keinen gefunden haben, stell ichs hier gern rein.

Danke für´s Lesen!
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: ebs17 am Oktober 09, 2016, 15:40:44
ZitatWas kann ich tun?

Korrigiere Deine Abwandlung. Das Original funktioniert ja unbestritten.
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: TTB am Oktober 09, 2016, 15:48:52
Ich werde die Abfrage bald hier posten und die Frage dann nochmal stellen.
Vielleicht könnt ihr mir dann besser helfen.
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: MzKlMu am Oktober 09, 2016, 15:53:16
Hallo,
ZitatAber da steht doch überall, dass es nicht für Parameterabfragen gilt.
wo steht das ?
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: TTB am Oktober 09, 2016, 15:58:10
Entschuldige MzKlMu - ich habe bemerkt, dass mein Beitrag nicht sehr konstruktiv war und habe ihn daher abgeändert.

Dennoch hier die Info: http://www.donkarl.com?FAQ3.11   

Dort steht, dass es nicht funktioniert, wenn man einschränkende Kriterien benutzt. Und es wird auf eine Stelle verwiesen, die genau das gleiche macht, wie der Code von DonKarl.

lG
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: TTB am Oktober 10, 2016, 12:45:52
So liebe Leute,

nun auch mit Code:

SELECT tblProjekte.ProjektID, tblKunden.Anrede, tblKunden.Vorname, tblKunden.Name, tblKunden.Mobil, tblKunden.FestnetzPrivat, tblKunden.TelefonBer, tblKunden.eMail, tblTeilnahmen.Status, tblAuftraggeber.AName, tblProjekte.Thema, tblProjekte.Datum, tblProjekte.Uhrzeit, [Vorname] & " " & +[Name] AS NameKomplett, (Select Count (*) FROM [tblTeilnahmen] as X WHERE [X].[KID] < [tblTeilnahmen].[KID])+1 AS Nummer
FROM tblKunden INNER JOIN ((tblAuftraggeber INNER JOIN tblProjekte ON tblAuftraggeber.AID = tblProjekte.AID) INNER JOIN tblTeilnahmen ON tblProjekte.ProjektID = tblTeilnahmen.ProjektID) ON tblKunden.KID = tblTeilnahmen.KID
WHERE (((tblProjekte.ProjektID)=([Formulare]![frmProjekte]![lstProjekte])))
ORDER BY tblKunden.Name, tblProjekte.Datum DESC , tblProjekte.Uhrzeit DESC;


Ich habe nicht aufgehört zu suchen und bin dennoch nicht fündig geworden. Mir kommt da nur die Lösung, das Ergebnis der Abfrage in eine neue Tabelle zu schreiben und dann dort zu zählen. Aber das empfinde ich ehrlich gesagt als keine besonders schöne Lösung.

Vielleicht habt ihr ja eine Idee. Danke schonmal fürs Lesen.

Chris
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: Lachtaube am Oktober 10, 2016, 13:13:55
Wo(für) werden denn die Nummern überhaupt benötigt?

Ansonsten sollte auch ein Bezug zum Projekt in der Unterabfrage vorhanden sein - sonst würden ja alle Teilnahmen berücksichtigt werden.

BTW: Wenn man sich die Mühe macht, den SQL-Text selbst in einem Editor mit sinnvollen Zeilenumbrüchen zu versehen, bleibt das den Helfern erspart und die Abfrage kann sogar hier im Forum gelsen und verstanden werden. :( SELECT tblProjekte.ProjektID,
       tblKunden.Anrede,
       tblKunden.Vorname,
       tblKunden.Name,
       tblKunden.Mobil,
       tblKunden.FestnetzPrivat,
       tblKunden.TelefonBer,
       tblKunden.eMail,
       tblTeilnahmen.Status,
       tblAuftraggeber.AName,
       tblProjekte.Thema,
       tblProjekte.Datum,
       tblProjekte.Uhrzeit,
       [Vorname] & " " & +[Name] AS NameKomplett,
       (Select Count(*)
          FROM tblTeilnahmen as X
         WHERE [X].[KID] < tblTeilnahmen.KID) + 1 AS Nummer
  FROM tblKunden
       INNER JOIN ((tblAuftraggeber
                    INNER JOIN tblProjekte
                            ON tblAuftraggeber.AID = tblProjekte.AID)
                   INNER JOIN tblTeilnahmen
                           ON tblProjekte.ProjektID = tblTeilnahmen.ProjektID)
               ON tblKunden.KID = tblTeilnahmen.KID
WHERE (((tblProjekte.ProjektID) = ([Formulare]![frmProjekte]![lstProjekte])))
ORDER BY tblKunden.Name,
          tblProjekte.Datum DESC,
          tblProjekte.Uhrzeit DESC;
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: TTB am Oktober 10, 2016, 13:54:12
Hallo Lachtaube,

die Kunden nehmen bei uns an verschiedenen "Projekten" teil.
Zur schnelleren Kommunikation (grade wenn sich ein Teilnehmer/Kunde an der Rezeption anmeldet oder ein Kunde nicht erscheint, ist es besser) und der Übersichtlichkeit wegen, wäre es besser direkt eine laufende Nummer zu haben.

Bisher lief es per manuell befüllter Excel-Tabelle, was ich ja gerne wegautomatisieren würde^^ Und da möchte ich den Leuten nicht die laufende Nummer klauen ;)

Doch scheint sich das hier eher als eine Schlacht denn als kleines Problem zu entpuppen :(

Bzgl des Editors:
Ich wusste nicht, dass so etwas möglich ist. Als ich meine ersten Abfragen per Hand mit Zeilenumbrüchen und Einzügen im SQL-Fenster von Access geschrieben habe, kamen einerseits Fehlermeldungen, andererseits hat mir Access das ganze wieder in Fließtext umgewandelt. ich habe diese Fehler auf die Formatierung bezogen und mich nicht weiter drum gekümmert, da die meißten Codebeispiele, die ich bei meinen Suchen hier im Forum gefunden habe ebenso formatiert waren wie meine.
Habe den von Dir formatierten Text so eingefügt und es läuft. Welchen Editor hast Du denn genommen? Ich würde den SQL-Text meiner Abfragen beim Erstellen gerne ebenso formatieren, wie meinen VBA Code.
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: Lachtaube am Oktober 10, 2016, 14:55:29
In der Regel ist das Formatieren von SQL-Abfragetexten in Access für die Katz, weil bei der Verwendung des grafischen Abfrageeditors der SQL-Text neu geschrieben wird. Aber hier im Forum ist es immer ganz nett, Abfragetexte auch lesen zu können. :) Im Prinzip ist jeder Text-Editor dazu geeignet, man muss ja nur ein paar Zeilenumbrüche und ggf. Leerzeichen einfügen, um den Code lesbar zu machen.

Noch einmal zum Thema: Bei Änderung der Teilnehmer ändert sich ggf. auch die Nummer von Teilnehmern, was bei einer Aufzählung (z. Bsp. in einem Bericht - da geht die Nummerierung übrigens auch viel einfacher zu erstellen) kein Problem darstellt. Will man aber einen Teilnehmer einer Veranstaltung über diese Nummer adressieren, so sollte man sie nur mit Vorsicht zu genießen.   
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: DF6GL am Oktober 10, 2016, 17:45:13
Hallo,

vielleicht hilft ja schon , den Feldnamen "Name" (überall) in Eckklammern zu schreiben:

tblKunden.[Name]




PS: 

und [Formulare] als [Forms]  zu schreiben...
Titel: Re: laufende Nummerierung in Parameterabfrage
Beitrag von: Beaker s.a. am Oktober 10, 2016, 20:35:10
ZitatIm Prinzip ist jeder Text-Editor dazu geeignet, man muss ja nur ein paar Zeilenumbrüche und ggf. Leerzeichen einfügen, um den Code lesbar zu machen.
Oder man bemüht einen der zahlreich im Netz vorhandenen SQL_Formatter.