Eingaben vom vorherigen Datensatz übernehmen?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

oo-user-mit-problem
**
Beiträge: 48
Registriert: Di, 13.12.2011 12:19

Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von oo-user-mit-problem »

Guten Abend zusammen,

bei der täglichen Arbeit mit meiner DB stellt sich gerade folgende Frage: wenn ich viele sehr ähnliche Datensätze eingebe ist das auf Dauer sehr zeitraumend, z.B. bei Bestellungen das immer wiederkehrende Tagesdatum. Gibt es einen Weg, wie man Base dazu bewegen kann, Werte aus dem vorherigen Datensatz zu übernehmen? Die Logik soll dann so ähnlich wie bei definierten Default Werten sein, nur eben mit dem Unterschied, dass die Werte aus dem vorherigen Datensatz kommen. Denn es könnte ja sein, dass das Bestelldatum nicht heute, sondern gestern oder vorgestern ist. Und dann würde mir ein default Wert TODAY() nicht weiterhelfen.

Bin für jeden Hinweis dankbar

VG
oo-user-mit-problem
Dateianhänge
Test DB Übernahme.odb
(4.65 KiB) 139-mal heruntergeladen
Zuletzt geändert von oo-user-mit-problem am Fr, 23.03.2012 17:50, insgesamt 1-mal geändert.
paradigma
***
Beiträge: 51
Registriert: Fr, 15.04.2011 10:35
Wohnort: Zürich
Kontaktdaten:

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von paradigma »

Hallo VG

Das ist auf jeden Fall möglich. Dazu brauchst du jedoch ein Makro mit folgendem Aufbau.

1. Eine Abfrage auf den zuletzt erfassten Datensatz. Stichwort: Select Last
2. Eine Anweisung, die dir diesen zuletzt verwendeten Datensatz entweder in deine Formularfelder oder direkt in die zugrunde liegende Tabelle schreibt.

Wenn du direkt in die Tabelle schreibst, ist der Datensatz direkt gespeichert, wobei du diesen natürlich nachträglich ändern kannst.
Wenn du die Abfrage in deine Formularfelder eintragen lässt, ist der Datensatz noch nicht gespeichert, was in deinem Fall möglicherweise die bessere Lösung wäre.

Schau die mal folgenden Link an. Dort siehst du ein konkretes Makro, das dir als Grundlage dienen könnte. Falls dich das nicht weiterbringt, musst du dich nochmals melden, damit ich dich unterstützen kann.

http://www.oooforum.de/viewtopic.php?f=18&t=48005

Gruss
paradigma
oo-user-mit-problem
**
Beiträge: 48
Registriert: Di, 13.12.2011 12:19

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von oo-user-mit-problem »

Hallo Paradigma,

das freut mich und macht das Leben schon mal leichter. Ich werde das morgen gleich mal durchspielen. Wenn ich noch fragen habe, melde ich mich.
Danke Dir aber schon mal an dieser Stelle

Viele Grüße
oo-user-mit-problem
paradigma
***
Beiträge: 51
Registriert: Fr, 15.04.2011 10:35
Wohnort: Zürich
Kontaktdaten:

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von paradigma »

Hallo

Habe deine DB gefunden. Du musst sie mir nicht mehr senden.

Inzwischen habe ich ein Beispiel eingefügt, das du beiliegender DB entnehmen kannst.

Du findest in der DB ein Formular. Wenn du das öffnest und auf "Neue Lieferung" klickst, wird im Formular der zuletzt gespeicherte Eintrag eingefügt (jedoch noch nicht gespeichert!).

Damit das funktioniert, habe ich zwei Abfragen, ein Makro sowie besagtes Formular eingefügt.

Entspricht das deinen Vorstellungen?

Gruss
paradigma
Dateianhänge
Test DB Übernahme.odb
Beispiel: Automatische Übernahme des zuletzt gespeicherten Datensatzes
(14.38 KiB) 227-mal heruntergeladen
paradigma
***
Beiträge: 51
Registriert: Fr, 15.04.2011 10:35
Wohnort: Zürich
Kontaktdaten:

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von paradigma »

Hallo

Der Schreibschutz kommt bei mir auch, hat aber keinen Einfluss auf die Ausführung des Makros.

Im Moment sehe ich eigentlich nur zwei Möglichkeiten, weshalb es nicht funktioniert:

1. Deine Makrosicherheitsstufe ist allenfalls zu hoch eingestellt. Die muss auf Tief oder Mittel sein, wobei ich Mittel empfehlen würde.
2. Vielleicht muss du die DB anmelden. Bei mir funktioniert das Makro allerdings auch ohne dass die DB angemeldet ist.

Wie sieht es denn mit den übrigen Funktionen aus? Kannst du z.B. auf nomale Weise einen neuen Datensatz im Formular anlegen?

Gruss
Paradigma

PS an andere: Falls nocht jemand die Datei heruntergeladen hat, wäre ich froh um ein kurzes Feedback, ob dort das Makro auch nicht ausgeführt wird. Auf meinen PC kann ich den Fehler jedenfalls nicht reproduzieren.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von F3K Total »

Hi,
bei mir OOo 3.3 W7 läuft das Makro!
Warum gehst Du über eine Abfrage?
Würde dies nicht auch reichen?

Code: Alles auswählen

Sub LetzteLieferung_Eintragen

oDoc = thisComponent
oForm = oDoc.Drawpage.Forms.getByName("FormularLieferschein")
oForm.last 'zum letzten Datensatz springen

dDatum = oForm.getDate(2)
sKunde = oForm.getString(3)
iArtikel = oForm.getLong(4)
iMenge = oForm.getLong(5)

oForm.moveToInsertRow
oForm.updateDate(2, dDatum)
oForm.updateString(3, sKunde)
oForm.updateLong(4, iArtikel)
oForm.updateLong(5, iMenge)
End Sub
Gruß R
oo-user-mit-problem
**
Beiträge: 48
Registriert: Di, 13.12.2011 12:19

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von oo-user-mit-problem »

Hi Paradigma,

ich habe deine Vorschläge ausprobiert. Folgendes ist passiert:

1. DB anmelden hat keine Wirkung gehabt
2. Makrosicherheit war auf hoch eingestellt.

Nach Änderung auf "mittel" konnte ich das Makro starten. Doch dann kam folgende Fehlermeldung:
Fehlermeldung.jpg
Fehlermeldung.jpg (90.09 KiB) 3747 mal betrachtet
Hast Du eine Idee, woran das liegen könnte?

Viele Grüße
oo-user-mit-problem
paradigma
***
Beiträge: 51
Registriert: Fr, 15.04.2011 10:35
Wohnort: Zürich
Kontaktdaten:

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von paradigma »

Hallo R

Deine Variante ist natürlich noch etwas eleganter, da direkter.

Danke und Gruss
paradigma
paradigma
***
Beiträge: 51
Registriert: Fr, 15.04.2011 10:35
Wohnort: Zürich
Kontaktdaten:

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von paradigma »

Hallo oo-User

Diese Fehlermeldung ist bei mir noch nie erschienen. Grundsätzlich besagt sie, dass du keine Rechte hast, einen neuen Datensatz einzufügen.

Dass es an den Formulareinstellungen liegt, kann ich mir nicht vorstellen, da sonst die Meldung auch bei mir erscheinen müsste.

Zudem hat R geschrieben, dass es bei ihm auch funktioniert.

Deshalb wage ich mal zu behaupten, dass es an deiner "Arbeitsumgebung" liegt. Eine Möglichkeit wäre, dass du die Datenbank auf einem Laufwerk abgespeichert hast, auf dem du nur Leserechte hast. Ich glaube zwar nicht wirklich, dass es das Problem ist, du kannst es jedoch leicht überprüfen, indem du einfach mal über die Standardschaltfläche "Neuer Datensatz" einen neuen Datensatz einfügst und schaust, ob das funktioniert, falls ja, trifft dieser Fall nicht zu.

Eine andere Möglichkeit wäre eine Globale Einstellung von Open Office, die du ändern müsstest. Da habe ich aber zurzeit keine Idee, was es sein könnte.

Gruss
paradigma
oo-user-mit-problem
**
Beiträge: 48
Registriert: Di, 13.12.2011 12:19

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von oo-user-mit-problem »

@ Paradigma

Dein Hinweis war goldrichtig. Ich habe mir noch einmal die Datei-Eigenschaften der DB angesehen. Die Datei hatte das Attribut "Schreibgeschützt" (wieso auch immer :shock: )
Nach dem entfernen lief es einwandfrei.

Jetzt kann ich auch Deine Frage beantworten: Ja, so habe ich mir das vorgestellt!!!!!!!!!!!!!!!
VIELEN DANK für Deine Hilfe!!!!!!!!!!!!!!!!!!!!!!!!

Dann kann ich ja jetzt weiterbasteln....

Viele Grüße und nochmals Danke
oo-user-mit-problem
oo-user-mit-problem
**
Beiträge: 48
Registriert: Di, 13.12.2011 12:19

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von oo-user-mit-problem »

@ R

Das ist ja noch mal eine Spur direkter. Perfekt. Dann kann ich mir ja auch die Abfrage sparen. Super!
VIELEN DANK für deine Hilfe!!!!!!!!!!!!
Das bringt mich ein gutes Stück weiter.

Viele Grüße und nochmals Danke
oo-user-mit-problem
oo-user-mit-problem
**
Beiträge: 48
Registriert: Di, 13.12.2011 12:19

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von oo-user-mit-problem »

@ all

Bin gerade dabei das Ganze in einer großen DB einzubauen. Jedoch kommt die nachfolgende Fehlermeldung. Demnach fehlt mir "Drawpage". Wie bringe ich OO bei, dass er "Drawpage" versteht?
Hoffe auf Eure geduldigen Hinweise

Danke & viele Grüße
oo-user-mit-problem
Dateianhänge
Fehlermeldung Makro.jpg
Fehlermeldung Makro.jpg (77.88 KiB) 3673 mal betrachtet
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von F3K Total »

Hi,
... indem Du das Makro nicht über Extras/Makros ... von der Benutzeroberfläche der Datenbank, sondern vom Formular aus startest.
Die Datenbank hat keine Drawpage, die hat nur das Formular.

Gruß R
oo-user-mit-problem
**
Beiträge: 48
Registriert: Di, 13.12.2011 12:19

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von oo-user-mit-problem »

Hi R,

Ich komme einfach über das "Drawpage" nicht hinweg. Somit sitzt das Problem eindeutig vor dem Rechner ;-)
Den aktuellen Stand der "Übernahme" habe ich hochgeladen. Es wäre nett, wenn Du mir hier noch einmal Schützenhilfe leisten könntest.

Danke Dir schon mal im Voraus.

Viele Grüße
oo-user-mit-problem
Dateianhänge
Datensatz_uebernehmen_2.odb
(15.04 KiB) 210-mal heruntergeladen
paradigma
***
Beiträge: 51
Registriert: Fr, 15.04.2011 10:35
Wohnort: Zürich
Kontaktdaten:

Re: Eingaben vom vorherigen Datensatz übernehmen?

Beitrag von paradigma »

Hallo

Das Makro läuft jetzt durch.

Ursache: Der interne Name deines Formulars war "MainForm". Das Makro suchte aber das Formular "FormularLieferschein". Habe den internen Namen nun angepasst.

Ein Formular hat einen internen und externen Namen. Den externen siehst du, wenn du ein Formular über den Standarweg aufrufst. Den internen Namen kannst du über den Formularnavigator anschauen. Dann wirst du auch feststellen, dass dein Formular über weitere Formulare verfügt. Hast du die bewusst erstellt?

Zudem musste ich im Makro die Variable prod.Nr anpassen. Du darfst nicht mitten im Wort einer Variable einen Punkt setzen.

Habe noch kurz deine Tabellenstruktur angeschaut. Da du keinerlei Beziehungen definiert hast, kann ich dir jetzt schon sagen, dass du damit Probleme erhalten wirst. Eine konkrete Lösung kann ich dir aber auch nicht geben, dazu müsste ich selbst etwas genauer reinschauen, und das könnte ich nur gegen Bezahlung tun.

Du findest aber in diesem Forum durchaus Informationen zu Tabellenbeziehungen.

Gruss
Beni
Dateianhänge
Datensatz_uebernehmen_2.odb
(15.47 KiB) 205-mal heruntergeladen
Antworten