Hallo,
so langsam kriegen sie mich hier.
Wie schaffe ich es, als Standardwert den Wert aus der gleichen Spalte des vorhergehenden Datensatzes (gleiche Tabelle) zu übernehmen ???
Ich dachte, da gäbe es eine ganz leicht zu findende Funktion, aber die finde ich nicht.
Muss man dafür ein 20 seitiges Makro schreiben ???
Am liebsten wäre mir eine kurze Befehlsfolge, die ich bei Standardwert in den Feldeigenschaften eintragen könnte.
Danke !!!
Office - Word, Excel und Co. 9.754 Themen, 41.624 Beiträge
Ist das ein Wert, der fuer alle Datensaetze identisch ist, oder gilt das nur fuer einzelne Datensaetze?
Hi,
in der Tabelle sollen Buchungen auf Bankkonten eingegeben werden.
Das Feld, für das ich gerne den Standardwert vorgeben möchte, ist ein Fremdschlüsselfeld, das meine Buchungstabelle mit der Tabelle verknüpft, in der die Bankdaten stehen.
Nun gibt man ja für ein Bankkonto Dutzende von Buchungen ein, also soll für das Fremdschlüsselfeld (=Bankkonto) immer der Wert der letzten Buchung vorgegeben werden.
So soll man sich ersparen, immer das betreffende Konto für jede Buchung neu auszuwählen.
Tja, wie kriege ich das denn jetzt gewuppt ?!
Gruß
Hmm, ich nehme an, du hast fuer die Eingabe der Buchungen ein Formular erstellt, oder?
Oder gibst du die Buchungen direkt in dei Tablle ein (=> im Datenbankfenster Reiter "Tabelle" dort die Tabelle waehlen und "oeffnen" und los gehts) ?
Falls du momentan nach letzterer Version arbeitest: du solltest dir ein Formular erstellen.
Ansonsten: ich ueberleg mir 'ne Loesung und poste sie wieder hier. Kann aber (wg. der Feiertage und Besuch) bis Mittwoch oder Donnerstag dauern.
Volker
Hi,
schon mal schönen Dank für Deine Mühe.
Ich habe für die Eingabe der Buchungen ein Formular erstellt, aber das kann mir ja leider nicht bei der Vorgabe dieses blöden Standardwertes helfen...
Schöne Feiertage
Dirk
>aber das kann mir ja leider nicht bei der Vorgabe dieses blöden Standardwertes helfen
Doch, das kann es. Sogar besser, als das Eigenschaftsfeld "Standardwert" in der Tabellendefinition.
Wie gesagt, ich mach mir mal Gedanken dazu. Hab etwas Geduld.
Volker
Hallo Spiderman,
hier kommt wie versprochen, ein Loesungsansatz. Wie schon angedeutet, gibt es keine Funktion oder Formel fuer die Tabelleneigenschaft "Standardwert".
Meine Loesung arbeitet auf Formularebene.
Oeffne dein Formular im Entwurfsmodus und gib in die Eigenschaft "Beim Laden" folgenden VBA-Code zwischen die angezeigten Sub / End Sub ein:
DIM db As DAO.Database
DIM rst As DAO.Recordset
DIM varWert as Variant
Set db=CurrentDb()
Set rst=OpenRecordset("DeineTabelle")
rst.MoveLast
varWert=rst!DeinFeld
Me!formularfeld=varWert
rst.close
db.close
set rst=nothing
set db=nothing
Diesen Code muesstest du ausserdem auch in die "Beim Klicken" Eigenschaft desjenigen Buttons eintragen, den du zum Weiterblaettern auf den naechsten, neuen Datensatz verwendest.
Achtung: getestet hab ich den Code nicht, habe hier zu hause derzeit kein ACCESS auf derPlatte.
Gruss, Volker
Hi Volker,
erstmal Danke für Deine Mühe.
Ich versuche mal, es damit hinzubasteln.
Habe aber bisher schon ein Problem bei der Zeile
Set rst=OpenRecordset("DeineTabelle").
Dabei habe ich in die Klammern natürlich meinen Tabellennamen eingetragen (Kontenbewegungen).
Trotzdem moppert Access herum wg. einer nicht definierten Variablen.
Fehlt da noch irgend etwas ?
Gruß
1. Steht der Tabellenname in Anfuehrungszeichen? Wenn nicht, bitte nachholen!
2. ist die Variable rst auch mit "Dim rst as DAO.Recordset" definiert? wenn nicht, bitte nachholen!
Gruss, Volker
Ueberpruefe, was im obigen Posting geschrieben habe, und zusaetzlich beachte:
Richtig ist:
'Erst Variablen deklarieren also
DIM db As DAO.Database
DIM rst As DAO. Recordset
'jetzt die aktuelle Datenbank in db speichern
Set db=CurrentDb()
'jetzt die Tabelle oeffen
Set rst=db.OpenRecordset("Tabellenname")
In dieser Zeile liegt der Fehler, solltest du es so geschrieben haben, wie in deinem obigen Posting:
du hast das "db." (db mit nachfolgendem Punkt) vergessen!!
Das hatte ich gerade ueberlesen
Volker
Danke Volker,
werde das gleich mal testen.
Hatte in der Access-Hilfe schon mal bei recordset nachgesehen und die andere Schreibweise entdeckt, aber VB ist für mich noch ein Buch mit sieben Siegeln...
Dirk
Das hat nichts mit Schreibweise zu tun. VBA "denkt" in "Objekten".
Die Datenbank ist ein Ojekt, ebenso ein Datensatz. "OpenRecordset" ist eine Methode.
Und wenn ich ene Methode anwenden will, dann muss ich ihr natuerlich auch sagen, auf welches Objekt.
Und genau das hatest du bei deiner Schreibweise schlichtt "vergessen".
Volker