PDA

Vollständige Version anzeigen : Access soll Zahl weiterführen


Michi
08.05.2001, 19:18
Hallo!
Ich möchte, dass meine Abfrage eine Zahl, die ich in ein ungebundenes Textfeld in einem Formular eingegeben habe automatisch weiterführt. Und zwar so, daß jeder Datensatz dadurch eine fortlaufende Nummer erhält. Ich gebe also z. B. 100 ein, der erste Datensatz soll dann 101 haben, der zweite 102 usw. Wie kann ich das hinbekommen? Vielen Dank im voraus.

gloria
09.05.2001, 08:07
Hallo,
bezieh dich in der Abfrage doch auf das formularfeld, dann mach was wie =max(ZahlFeld)+1 für die weiteren Datensätze ?!

Oder hab ich dich falsch verstanden ...

ciao glori

A.S.
09.05.2001, 08:29
Hallo Michi,

siehe <a href = "http://www.donkarl.com/FAQ/FAQ3TAbfragen.htm"> FAQ 3.11 Fortlaufende Nummer in Abfragen </a>

Zusätzlich gibst Du am Ende des Ausdrucks den Bezug auf Dein Formularfeld mit der Grundzahl an.

HTH

Arno

Michi
09.05.2001, 21:56
Hallo! Zunächst vielen Dank für die Tips.
Leider funktioniert das mit =max... nicht, ich bekomme immer den Fehlerhinweis "Sie wollten eine Abfrage ausführen, die den angegebenen Ausdruck 'Kundennummer' nicht als Teil der Aggregatfunktion einschließt." Was immer das bedeuten soll.

Auch unter Don Karl's FAQ 3.11 habe ich nachgesehen; verfüge aber über mangelnde VBA-Kenntnisse und komme mit der dortigen Anweisung:

RowNum: (Select Count (*) FROM [Artikel] as Temp WHERE [Temp].[ID]<[Artikel].[ID])+1

nicht ganz zurecht.

Ich entnehme den FAQ, dass hier als ID ein eindeutiger Schlüssel notwendig ist, den ich aber nicht habe. Ich will nur ein ganz gewöhnliches UNGEBUNDENES Textfeld automatisch weiterführen/weiterzählen lassen.

Vielen Dank! Gruß, Michi

A.S.
10.05.2001, 09:08
Hi Michi,

wie sieht denn Deine Tabellenstruktur aus und wie werden die Felder gefüllt? Evtl. ist ja doch ein Feld dabei, welches man als eindeutige Kennung nutzen kann.

Ich werd mich nochmal umsehen, vielleicht finde ich ja doch einen weg das anders zu gestalten......

cu

Arno

A.S.
10.05.2001, 09:42
Hi Michi,

schon geschehen, habe die Lösung:

Du hast

a) Dein Textfeld mit dem Basiswert
Name: txtBase
b) ein ungebundenes Textfeld
Name: txtCounter

In das Ereignis Beim Anzeigen des Formulars stellst Du folgenden Code:


'Private Sub Form_Current()
On Error Resume Next ' verhindert den Ausstieg bei gelöschten DS bzw. bei neuen DS
Me.RecordsetClone.Bookmark = Me.Bookmark ' Einstellen des Recordset-Duplikats auf den aktuellen Datensatz
If Err <> 0 Then ' Kein aktueller DS
Me.txtCounter = 0
Else
Me.txtCounter = Me.RecordsetClone.AbsolutePosition + Me.txtBase + 1 ' AbsolutePosition = 0 für 1. DS
End If
On Error Goto 0 ' Fehlermeldungen wieder aktivieren
'End Sub


HTH

Arno

Michi
15.05.2001, 19:50
Hallo zusammen!

Ich habe nun selbst des Rätsels Lösung entdeckt. Ich habe einfach ein ungebundenes Textfeld in meinem Bericht installiert. In dieses Textfeld habe ich als Steuerelementinhalt einfach =1 eingegeben und das Feld laufende Summe auf "Über alles" gesetzt. Dieses Feld nummeriert im Bericht jetzt alle Datensätze durch. Ich habe also noch ein Feld installiert, welches den Inhalt meines ungebundenen Textfeldes aus dem Formular (irgend eine Nummer) mit der Nummer des Datensatzes addiert. Fertig ist die laufende Nummer für alle ausgedruckten Datensätze.

A.S.
16.05.2001, 13:11
Hallo Michi,

sorry, aber jetzt siehst Du hier jemanden der sich noch mehr wundert, als die Tage schon :confused:

Erst war es eine Abfrage, auf welcher ein Formular basierte, in dem dann eine Nummer hochgezählt werden sollte. Diese sollte auf einer Eingabe in einem anderen Feld basieren. Eine dem entsprechende Lösung habe ich Dir weiter oben geliefert. Per Mail sagtest Du dann das es sich dabei um die Rechnungsnummer handelt. Da die Rechnungsnummer zu den unveränderlichen Stammdaten einer Rechnung gehört hatte ich Dir geraten diese in Deiner DB zu speichern und nicht dynamisch zu generieren und Dein DB-Design in dieser hinsicht einmal kritisch zu überprüfen. Jetzt ist es plötzlich ein Bericht in dem nur eine laufende Nummer hochgezählt wird.

Ich bitte Dich, und einige andere, doch einmal die Problemstellung, die hier angegeben wird, vor Veröffentlichung gründlich zu überdenken und den Teilnehmern dann konkrete Aussagen zu machen, um was es denn nun letztendlich geht... Viele Anfragen hier verdeutlichen sich leider leider erst nach Austausch einiger Beiträge, obwohl allen Teilnehmern, sowohl den Antwortenden als auch den Fragenden, viel eher geholfen währe, wenn die Problemstellung von vornherein sauber und klar dargestellt würde.

Sicherlich findet man im Laufe der Entwicklung immer wieder Dinge die einen dazu verleiten andere Lösungen in bestimmten Punkten zu suchen, aber für konkrete Anfragen sollte man sich IMHO schon ein paar Gedanken mehr machen.

Es ist keineswegs so, das ich solche Anfragen nicht beantworten würde, aber ich für meinen Teil finde es schon ein wenig ärgerlich, wenn man seine Zeit für Problemlösungen aufwendet die nichts mit dem eigentlichen Problem zu tun haben, weil diese nicht angesprochen werden.

Es gibt ein Sprichwort das ungefährt so lautet "Wer spricht dem kann geholfen werden" (oder so...).

Nichts für ungut.

Gruß

Arno