Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Hilfe mit Recordset - BITTE HILFE

Begonnen von Schakal, Juli 01, 2011, 09:16:32

⏪ vorheriges - nächstes ⏩

Schakal

Hallo Forum Mitglieder,
ich ahbe da folgendes Problem und habe irgedwo einen Denkfehler.
Folgendes möchte ich machen:
Ich möchte den "AutoWert" aus einer Tabelle auslesen.
habe folgende Code schonaml gemacht scheitere aber an einem Punkt:
Hier der Code:

Dim LfdNr As DAO.Recordset
   
    Set LfdNr = CurrentDb.OpenRecordset("stm_LfdNr")
    LfdNr.MoveLast
   MsgBox LfdNr.Fields ("ID")   ---- hier lese ich den Autowert aus per Msgbox . Bis hier hin alles SUPER und OK!
PROBLEM!!!!!!
ich möchte aber diesen Wert nicht in der MSGBOX haben sondern dieser soll in ein Textfeld(Nummer) in einem Formular(Ersteller) erscheinen - rein geschrieben werden und wenn ich das Formular wieder aufrufe erscheint der nächste wert der tabelle im Textfeld(Nummer).

Ich bekomme es einfach nicht HIN -- BITTE HILFE

MzKlMu

Hallo,
ich kann nicht nachvollziehen was Du vorhast. Der Autowert geht doch automatisch.
Wenn das Formular an die Tabelle gebunden wird, hast Du bei jedem Aufruf (bzw. neuen Datensatz) auch eine neue Nummer.

Da brauchst Du nichts zu programmieren.

Im Regelfall ist der Autowert für den User auch gar nicht sichtbar.
Gruß Klaus

Schakal

Hallo
ich nutze den Autowert als eine Laufnummer.
Vorher vergebe ich in einem Formular einen Namen dem ich der Tabelle stm_Lfdnr zuordne - reinschreibe
Sobald ich den neuen Datensatz angefügt habe bekomme ich eine neue Nummer(Autowert) und diesen Autowert nutze ich als Laufnummer
Vor diesem Code gibt es den COde für das Formular etc.


MzKlMu

Hallo,
ich verstehe nur Bahnhof.
Was willst Du mit dem Code, der Autowert wird doch automatisch vergeben und dann hast/siehst Du diesen.
Gruß Klaus

Schakal

Hallo
Also zum Verständniss.

Ich möchte eine Fortlaufende Nummerierung haben.

Ich habe mehere Tabellen.
Eine Tabelle nutze ich für meine Fortlaufende Nummerierung.
Diese Tabelle hat zwei Spalten (ID-Autowert) und (Name)

Dazu kommt ein Formular das ich aufrufe und der Anwender wird aufgefordert eine Fortlaufende Nummer zu erstellen.

Um diese Nummer zu erstellen muss er erst seinen Namen angeben und wenn er dann auf OK klickt wird dieser name in die Tabellen Spalte (Name) reingeschrieben- Automatisch wird also ein neuer Datensatz erstellt und damit auch eine neue ID - da diese ja einen Autowert hat.
Nun möchte ich aber dem Anwender nicht alle ID nummer zurück geben ich möchte ihm nur die letze (Move.last) zurück geben(Also die ID Nummer des Neuen Datensatzes). Es funktioniert ja mit der MessageBox aber ich möchte den Wert nicht in der MessageBox haben sondern diesen in das bereits geöffnete Formular in einem Textfeld -"reinschreiben" - NUR DEN LETZTEN WERT.

ich hoffe ich habe mich richtig ausgedrückt.

MzKlMu

#5
Hallo,
Zitatich hoffe ich habe mich richtig ausgedrückt.
Nein, wenn der Autowert vergeben wurde, hast Du doch diesen auch im Formular stehen bzw. kannst diesen im Formularfeld anzeigen.

Wozu noch mal extra auslesen?
Und MoveLast muss nicht zwangsläufig den letzten Wert ergeben, das hängt von der Datensatzreihenfolge in der Tabelle ab.

PS:
Name ist als Feldname unbedingt zu vermeiden. Du handelst Dir damit große Probleme ein. Nur nebenbei.
Gruß Klaus

Schakal

Hallo
das ist ja richtig
Ich habe aber dort nur den Ersten Autowert stehen möchte aber immer den Letzten Autowert haben NACHDEM die Tabelle Aktualisiert wurde

MzKlMu

Hallo,
es ist mir nach wie vor völlig unklar was Du willst.
Was nutzt es, wenn Du den letzten Wert angezeigt bekommst?
Oder willst Du dann auch gleich den letzten Datensatz angezeigt bekommen?

Hast Du das gelesen mit dem Name und der Hinweis zu MoveLast?
Gruß Klaus

Schakal

Hallo ich schicke Dir meine Test datenbank und dann kannst DU sehen was ich gemacht habe
Vielelicht ist dann das Verständnis da

Datenbank öffnen
Felder ausfüllen
Auf "Laufnummer Erstellen" Klicken
und die Instruktionen folgen
Ich hoffe es klappt so

[Anhang gelöscht durch Administrator]

Schakal

Hallo

Ich habe die Lösung gefunden!!!
danke
Sie lautet im Code:

Forms!FormularName!Nummer = LfdNr.Fields("ID")
Danke!!!! ???

database

Hallo,

wobei ich zu bedenken gebe, dass die Verwendung eines AutoWertes für fortlaufende Nummerierungen die denkbar schlechteste Lösung ist,
wenn die Reihenfolge der Nummern NICHT unterbrochen werden darf (z.B. bei Rechnungsnummern!!)