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
Hallo,
und warum zeigst du uns deine Abfrage nicht einfach?
Andreas
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!
ZitatWas kann ich tun?
Korrigiere Deine Abwandlung. Das Original funktioniert ja unbestritten.
Ich werde die Abfrage bald hier posten und die Frage dann nochmal stellen.
Vielleicht könnt ihr mir dann besser helfen.
Hallo,
ZitatAber da steht doch überall, dass es nicht für Parameterabfragen gilt.
wo steht das ?
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
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
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;
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.
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.
Hallo,
vielleicht hilft ja schon , den Feldnamen "Name" (überall) in Eckklammern zu schreiben:
tblKunden.[Name]
PS:
und [Formulare] als [Forms] zu schreiben...
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.