🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Macro für automatische Wertsetzung

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
zemudo
Beiträge: 15
Registriert: Mo 21. Nov 2011, 16:39

Macro für automatische Wertsetzung

Beitrag von zemudo » Fr 9. Dez 2011, 13:16

Hallo,
ich möchte, dass wenn in dem Feld Datum meiner Tabelle (Formular) Produkt ein Datum eingetragen wird, in einen anderen Feld (Vorgang) die Zahl 1 gesetzt wird. Wie müsste das Macro hierfür aussehen?

Vielen dank im Voraus

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Macro für automatische Wertsetzung

Beitrag von gogo » Sa 10. Dez 2011, 14:50

Dein Datumsfeld hat eine Ereignis "Nach dem Aktualisieren"
diesen weist Du folgendes Makro zu:

Code: Alles auswählen

sub Feldwert_setzen
oForm = StarDesktop.CurrentComponent.DrawPage.Forms.GetByIndex(0)
select case oForm.getByName("Name des Datums-Kontrollfeldes wie es im Formularnavigator steht").text
case "",0,null
case else
	oForm.getByName("Name des Kontrollfeldes in das Du den 1er eintragen willst wie es im Formularnavigator steht").text = 1
end select
end sub
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

zemudo
Beiträge: 15
Registriert: Mo 21. Nov 2011, 16:39

Re: Macro für automatische Wertsetzung

Beitrag von zemudo » Sa 10. Dez 2011, 17:03

Leider kommt eine Fehlermeldung.
Liegt es evtl. daran, dass es sich nicht um Kontrollfelder sondern um Texfelder (AuzugDatum Feldtyp Datum (DATE), OffenBezahlt Feldtyp Zahl (NUMERIC) handelt?
Fehlermeldung1.png
Fehlermeldung1.png (41.12 KiB) 8310 mal betrachtet
Fehlermeldung.png
Fehlermeldung.png (25.43 KiB) 8310 mal betrachtet

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Macro für automatische Wertsetzung

Beitrag von F3K Total » Sa 10. Dez 2011, 17:39

Hallo,
versuch es in der blau markierten Zeile mal mit .date statt .Text
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

zemudo
Beiträge: 15
Registriert: Mo 21. Nov 2011, 16:39

Re: Macro für automatische Wertsetzung

Beitrag von zemudo » Sa 10. Dez 2011, 18:14

Es kommt leider die gleiche Fehlermeldung

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Macro für automatische Wertsetzung

Beitrag von F3K Total » Sa 10. Dez 2011, 22:24

Hallo,
heißt das Datumsfeld wirklich "AuszugDatum"? Der im Makro zu verwendende Name ist der, den Du findest, wenn Du im Bearbeitungsmodus des Formulares einen Rechtsklick auf den Spaltenkopf "AuszugDatum" machst, "Spalte..." anklickst und dann auf dem Reiter "Allgemein" das Feld "Name" anschaust.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Macro für automatische Wertsetzung

Beitrag von gogo » Sa 10. Dez 2011, 22:26

Hast Du xray installiert?
(http://sourceforge.net/projects/ooomacr ... ion%205.2/) oder so...

NoSuchElement bedeutet, dass es kein Kontrollelement (KE) mit dem Namen "AuszugDatum" gibt. Den Namen eines KEs kannst Du am leichtesten im Formularnavigator ablesen - da siehst Du auch in welchem Formular-Objekt Dein KE zu Hause ist.

ops - da war ich zu langsam ;)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Macro für automatische Wertsetzung

Beitrag von F3K Total » Sa 10. Dez 2011, 22:44

Hallo,
es sieht so aus, als ob das Feld "AuszugDatum" sich auf dem Unterformular befindet.
mit

Code: Alles auswählen

oForm=stardesktop.currentComponent.drawpage.forms.getbyindex(0)
wird aber das Hauptformular angesprochen.
mit

Code: Alles auswählen

oform.getbyname("AuszugDatum")
suchst Du die Spalte "AuszugDatum" quasi im Hauptformular.
Ausserdem befindet sich die Spalte in einem Tabellenkontrollfeld.
Der richtige Weg zu deiner Spalte, den Du am besten mit dem Formularnavigator ergründest, wie gogo gerade geschrieben hat,
lautet vermutlich:

Code: Alles auswählen

oForm =stardesktop.currentComponent.drawpage.forms.getbyname("Name des Hauptformulares")
oFormSub = oForm.getbyname("Name des Unterformulares")
ogrid = oFormSub.getbyname("Name des Tabellenkontrollfeldes")
oAuszugDatum = ogrid.getbyname("AuszugDatum")
oder in einer Zeile:

Code: Alles auswählen

oAuszugDatum = stardesktop.currentComponent.drawpage.forms.getbyname("Name des Hauptformulares").getbyname("Name des Unterformulares").getbyname("Name des Tabellenkontrollfeldes").getbyname("AuszugDatum")
mit oAuszugDatum.date liest Du dann das Datum aus.

Gruß R

Edit:
Im hier dargestellten Beispiel:
azdat.png
azdat.png (33.27 KiB) 8288 mal betrachtet
wäre der Weg:

Code: Alles auswählen

oForm =stardesktop.currentComponent.drawpage.forms.getbyname("MainForm")
oFormSub = oForm.getbyname("SubForm")
ogrid = oFormSub.getbyname("SubForm_Grid")
oAuszugDatum = ogrid.getbyname("AuszugDatum")
Windows 11: AOO, LO Linux Mint: AOO, LO

zemudo
Beiträge: 15
Registriert: Mo 21. Nov 2011, 16:39

Re: Macro für automatische Wertsetzung

Beitrag von zemudo » So 11. Dez 2011, 12:30

Es klappt leider nicht bzw. ich schaffe es nicht. Es gibt bei mir auch kein SubForm_Grid.
Vielleicht könnt ihr mir weiterhelfen, wenn ich die DB anhänge.
Dateianhänge
Kundendatei.zip
(57.36 KiB) 333-mal heruntergeladen

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Macro für automatische Wertsetzung

Beitrag von F3K Total » So 11. Dez 2011, 13:04

Hallo,
nein es gibt kein Subform_Grid, aber es gibt ein "Tabellen-Kontrollfeld 1".
Wie schon gesagt, schau dir das mit dem Formularnavigator an, dann geht es ganz leicht.
Ich habe Dich auch darauf hingewiesen, zu schauen wie das Feld "AuszugDatum" heißt, der Name lautet: "DateField3"
Und das Feld in das Du hineinschreiben möchtest, "OffenBezahlt", liegt auf dem "SubForm".

Siehe Bild:
1.png
1.png (47.61 KiB) 8278 mal betrachtet
Also muß das Makro so geändert werden.

Code: Alles auswählen

sub Feldwert_setzen
oForm =stardesktop.currentComponent.drawpage.forms.getbyname("MainForm")
oFormSub = oForm.getbyname("SubForm")
ogrid = oFormSub.getbyname("Tabellen-Kontrollfeld  1")
oAuszugDatum = ogrid.getbyname("DateField3")
select case oAuszugDatum.date
case "",0,null
case else
   oFormSub.getByName("OffenBezahlt").text = 1
end select
end sub
Alle Feld/Tabellen/Formularnamen kannst Du auch ändern, dann mußt Du aber das Makro anpassen.

Viel Erfolg
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO


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.



Antworten