🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
In kopiertem Datensatz mit hinterlegtem Makro, Felddaten löschen
In kopiertem Datensatz mit hinterlegtem Makro, Felddaten löschen
Guten Tag
Es gibt ja im Base eine komfortable Lösung um Datensätze zu kopieren, indem man in der Tabelle einen Datensatz mit der Maus über den nächsten Datensatz zieht. Im neuen Datensatz sind dann alle Werte übernommen.
In meinem Fall wäre es super, wenn das Datum und die Belegnummer gelöscht wären.
Kann man mit einem Makro auf Felder zugreifen und diese löschen und dieses Makro im Formular Eigenschaften, (unter: Nach der Datensatzaktion...) hinterlegen?
Ich finde keine anwendbare Lösung, weder in der Anleitung noch im Forum.
Vielen Dank, falls jemand einen Vorschlag hat.
Einen schönen Abend
und beste Grüsse
Markus
Es gibt ja im Base eine komfortable Lösung um Datensätze zu kopieren, indem man in der Tabelle einen Datensatz mit der Maus über den nächsten Datensatz zieht. Im neuen Datensatz sind dann alle Werte übernommen.
In meinem Fall wäre es super, wenn das Datum und die Belegnummer gelöscht wären.
Kann man mit einem Makro auf Felder zugreifen und diese löschen und dieses Makro im Formular Eigenschaften, (unter: Nach der Datensatzaktion...) hinterlegen?
Ich finde keine anwendbare Lösung, weder in der Anleitung noch im Forum.
Vielen Dank, falls jemand einen Vorschlag hat.
Einen schönen Abend
und beste Grüsse
Markus
Re: In kopiertem Datensatz mit hinterlegtem Makro, Felddaten löschen
Hallo Markus,
Du kannst natürlich auf den aktuellen Datensatz zugreifen und mit updateNULL ein entsprechendes Feld leeren. Das ginge z.B. mit so etwas wie
Jetzt musst Du natürlich heraus bekommen, mit welchem Event genau Du das verbinden darfst. Schließlich willst Du das nur bei einem Insert über das Kopieren und Einfügen machen und nicht bei jeder Datensatzaktion. Da müsste ich auch mit xray testen, an welcher Bedingung das denn fest gemacht werden kann. Nicht dass Du grundsätzlich kein Datum mehr speichern kannst …
Gruß
Robert
Du kannst natürlich auf den aktuellen Datensatz zugreifen und mit updateNULL ein entsprechendes Feld leeren. Das ginge z.B. mit so etwas wie
Code: Alles auswählen
oForm.updateNULL(oForm.findColumn("Datum"))
oForm.updateRow()
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: In kopiertem Datensatz mit hinterlegtem Makro, Felddaten löschen
Guten Abend Robert
Vielen Dank für die schnelle Antwort.
Ich versuchte es schon mehrmals mit dem Löschen, aber es kommt immer wieder die Meldung:
BASIC-Laufzeitfehler.
Objektvariable nicht belegt.
Auch mit Deinem Vorschlag.
Habe dann immer wieder gegoogelt wegen der Objektvariablen, aber keine Lösung gefunden.
Herzliche Grüsse
Markus
Vielen Dank für die schnelle Antwort.
Ich versuchte es schon mehrmals mit dem Löschen, aber es kommt immer wieder die Meldung:
BASIC-Laufzeitfehler.
Objektvariable nicht belegt.
Auch mit Deinem Vorschlag.
Habe dann immer wieder gegoogelt wegen der Objektvariablen, aber keine Lösung gefunden.
Herzliche Grüsse
Markus
Re: In kopiertem Datensatz mit hinterlegtem Makro, Felddaten löschen
Hallo Markus,
das, was ich da geschrieben habe, ist natürlich nicht eine komplette Prozedur. Wenn Du z.B. die Prozedur an ein Ereignis des Formulars koppelst, dann könnte das so lauten:
Die Variable oForm wird aus dem auslösenden Ereignis ermittelt. Die Abfrage zur Implementation kann eventuell entfallen. Das habe ich mir jetzt für die Prozedur nicht weiter angeschaut.
Gruß
Robert
das, was ich da geschrieben habe, ist natürlich nicht eine komplette Prozedur. Wenn Du z.B. die Prozedur an ein Ereignis des Formulars koppelst, dann könnte das so lauten:
Code: Alles auswählen
SUB InhaltLoeschen(oEvent AS OBJECT)
oForm = oEvent.Source
IF oForm.ImpelementationName = "com.sun.star.comp.forms.ODatabaseForm" THEN
oForm.updateNULL(oForm.findColumn("Datum"))
oForm.updateRow()
END IF
END SUB
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: In kopiertem Datensatz mit hinterlegtem Makro, Felddaten löschen
Guten Abend Robert
Vielen Dank für Deine Hilfe.
Du hast natürlich recht, dass ich diesen Makro schwerlich hinterlegen kann, weil dann diese Aktion auf bestehenden Datensätzen auch ausgeführt wird, wenn ich mich darin bewege.
Ich habe nun bei der Tabelle einen Schalter hinterlegt, welcher beim kopieren nicht übersehen werden kann und dieser löscht dann die beiden Felder, mit diesem Makro:
SUB Datum_Beleg_loeschen
DIM oForm AS OBJECT
oForm = thisComponent.drawpage.forms.MainForm
oForm.updateNULL(oForm.findColumn("Datum"))
oForm.updateNULL(oForm.findColumn("Belegnummer"))
END SUB
Ich wünsche Dir einen schönen Abend
und grüsse Dich herzlich
Markus
Vielen Dank für Deine Hilfe.
Du hast natürlich recht, dass ich diesen Makro schwerlich hinterlegen kann, weil dann diese Aktion auf bestehenden Datensätzen auch ausgeführt wird, wenn ich mich darin bewege.
Ich habe nun bei der Tabelle einen Schalter hinterlegt, welcher beim kopieren nicht übersehen werden kann und dieser löscht dann die beiden Felder, mit diesem Makro:
SUB Datum_Beleg_loeschen
DIM oForm AS OBJECT
oForm = thisComponent.drawpage.forms.MainForm
oForm.updateNULL(oForm.findColumn("Datum"))
oForm.updateNULL(oForm.findColumn("Belegnummer"))
END SUB
Ich wünsche Dir einen schönen Abend
und grüsse Dich herzlich
Markus
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.