Zum Inhalt springen

Access: Mit vorherigem Datensatz rechnen


cujo

Empfohlene Beiträge

Hallo Jungs,

leider habe ich in der Suche keine Antwort auf meine Frage gefunden.

Ich möchte gern in einem meiner Formulare einen Wert berechnen. Das ist ja an für sich kein Problem, aber ich finde einfach nicht heraus, wie ich dafür einen Wert aus dem vorhergehenden Datensatz ziehen kann!

Es soll nämlich so sein, dass (es geht um ein Formular "Benzinrechner") Kilometerstand_Alt automatisch den Wert von Kilometerstand_Neu aus dem vorherigen Datensatz übernimmt. Geht das auch ohne VBA?

Danke für eure Hilfe

cujo (der doofe SI :D )

Link zu diesem Kommentar
Auf anderen Seiten teilen

Morgen,

ich habe es mal mit diesem Vorschlag versucht, aber selbst, nachdem ich den Datentyp der Variablen auf "Integer" geändert habe, funktioniert des net...

Wenn man den Wert eines Feldes in einem Formular mit dem Inhalt des Feldes aus dem vorherigen Datensatz füllen möchte lässt sich dieses am einfachsten mit einer Access Basic Funktion verwirklichen.

Diese Funktion ermittelt den letzten Wert des entsprechenden Steuerelements und gibt ihn als Standardwert zurück.

Erstellen Sie zuerst ein neues Modul. EINFÜGEN|MODUL. Geben Sie nun im leeren Modulfenster folgenden Code ein:

Function GetLast (strControl As String)

Dim rs As Recordset

Set rs = Screen.ActiveForm.RecordSetClone

rs.MoveLast

GetLast = rs(strControl)

rs.Close

End Function

Speichern Sie das neue Modul unter dem Namen "LetzDat" ab.

Geben Sie nun unter Eigenschaften Standartwert Ihres Steuerelementes =GetLast("Name"),ein. Wobei Name für den Namen Ihres Steuerelementinhalts steht. Wenn Sie also zum Beispiel in Ihrem Steuerelement "Artikelname" den Artikelname des vorherigen Datensatzes als Standartwert haben möchten, müsste der Eintrag also: "=GetLast("Artikelname")" heißen.

Wenn Sie nun einen neuen Datensatz eingeben wollen steht in Ihrem Feld mit der Funktion "GetLast" schon der Wert des vorherigen Datensatzes.

Wissen unsere Programmierer da wirklich keinen Rat?

Gruß, cujo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie sind denn die Datensätze aufgebaut? Haben die eine laufende Nr als Primärschlüssel?

So kann man echt nur raten ;)

Falls die eine Fortlaufende Nummer hast, könntest du das so machen:


dim alt_id as integer


alt_id=txtID.text-1


Kilometerstand_Neu.Text=dlookup("Kilometerstand_Alt","Tabellenname","id=" & alt_id)

Kilometerstand_Neu ist in dem Fall dein aktuelles Textfeld, Kilometerstand_Alt ist dein Feld in der Tabelle, id ist der Primärschlüssel in der Tabelle und txtID ist das Textfeld in dem die aktuelle Id drinsteht.

Je nachdem wie dein Forumlar und deine Tabelle aussehen mußt du evt. noch einige Fehlerquellen abfangen (z.B. das das beim allerersten Datensatz nicht gemacht wird)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich weiss nicht genau ob ich deine Frage richtig verstanden hab.

Für den Fall das du mit dem letzten Record den meinst, den der User vorher gewählt hat hab ich folgenden Ansatz:

Im Quellcode deines Formulars definierst du 2 Varablen global ( nicht innerhalb einer Funktion):

Dim dKm_Alt as double 'oder Long je nach Definition in deiner DB

Dim dKm_Neu as double

In der Ereignissprozedur Form_Current()

on error goto Form_Current_err

dKm_Alt= dKm_Neu

dKm_Neu= me.KILOMETER_NEU

'ich geh davon aus, dass KILOMETER_NEU der Name

' des Steuerelementes ist das an das Kilometer_Neu Feld des Recordsets gebunden

' ist.

Form_Current_err:

end sub

In dKm_Alt steht der Wert aus dem vorher gewählten Recordset.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...