Seite 1 von 1

Eingabe über Makro in ein Textfeld, wird nicht in die Tabelle übernommen

Verfasst: Sa 29. Jul 2023, 18:31
von Pensionär
Guten Abend

Ich möchte gerne eine Auftragsnummer erstellen mit dem JJMM und der Datensatznummer des Auftrages.
Dafür habe ich in der Tabelle ein Textfeld mit dem Namen Rechnungsnummer, mit einem Makro setze ich dann im Formular das Jahr und den Monat:

SUB Rechnungsnummer
ThisComponent.Drawpage.Forms.GetByName("MainForm").GetByName("datRechnungsnr").Text = Format(Date, "YYMM")
End Sub

Es wird dann das Jahr und der Monat in das Feld gesetzt z.B. 2308, aber leider lässt sich das nicht in die Tabelle übertragen, das heisst beim Speichern oder Datensatzwechsel verschwindet dann die Zahl wieder.

Muss im Makro ein zusätzlicher Befehl geschrieben werden?

Vielleicht kann mir jemand weiterhelfen.

Vielen Dank und ein schönes Wochenende.

Herzliche Grüsse
Markus

Re: Eingabe über Makro in ein Textfeld, wird nicht in die Tabelle übernommen

Verfasst: So 30. Jul 2023, 12:33
von RobertG
Hallo Markus,

mit der Eigenschaft "Text" schreibst Du etwas nur in die Anzeige. Das merkst Du auch, wenn Du lediglich diese Makroänderung und sonst keine am Datensatz machst. Der Speicherbutton wird nicht aktiviert, Du kannst das Formular einfach schließen, nichts passiert.

Code: Alles auswählen

SUB Rechnungsnummer
ThisComponent.Drawpage.Forms.GetByName("MainForm").GetByName("datRechnungsnr").BoundField.UpdateString(Format(Date, "YYMM"))
End Sub
Ich nehme einmal an, dass das, was da gespeichert werden soll, tatsächlich ein Text ist. So kommst Du jedenfalls an das darunterliegende Feld ran.

Gruß

Robert

Re: Eingabe über Makro in ein Textfeld, wird nicht in die Tabelle übernommen

Verfasst: So 30. Jul 2023, 18:45
von Pensionär
Lieber Robert
Klappt super, ganz herzlichen Dank.
Ich wünsche Dir einen guten Start in die neue Woche.
Beste Grüsse
Markus

Re: Eingabe über Makro in ein Textfeld, wird nicht in die Tabelle übernommen

Verfasst: Di 1. Aug 2023, 13:02
von Pensionär
Guten Tag Robert
Erlaube mir nochmals eine Frage zu stellen, hier habe ich das selbe Problem, die Änderung wird zwar geschrieben, aber nicht gespeichert in der Tabelle. Habe versucht es abzuleiten vom ersten Fall, komme aber auf keine Lösung.

Sub aufbezahltsetzen
Dim oForm As Object
Dim oField1 As Object
Dim oField2 As Object
Dim sValue As String

oForm = ThisComponent.Drawpage.Forms.getByName("MainForm")
oField1 = oForm.getByName("txtZahlung")
oField2 = oForm.getByName("txtStatus")

sValue = "Barzahlung, Betrag dankend erhalten"

If oField1.Text = sValue Then
oField2.Text = "Auftrag bezahlt"
End If
End Sub

Herzliche Grüsse aus Herisau
Markus

Re: Eingabe über Makro in ein Textfeld, wird nicht in die Tabelle übernommen

Verfasst: Di 1. Aug 2023, 21:14
von RobertG
Hallo Markus,

der gleiche Fehler: oField1.Text ist das, was Du im Formular siehst. Das ist aber nicht unbedingt der Inhalt, der in der darunterliegenden Datenquelle gespeichert ist. Du kannst per Makro allen möglichen Feldern neuen Text zuweisen und wirst anschließend nicht nach einer Speicheraktion gefragt, weil die Änderung nicht bei der Datenquelle ankommt.

Wenn Du einen Wert ermitteln willst:
oField1.CurrentValue
Wenn Du einen Wert schreiben willst:
oField1.BoundField.UpdateString(sValue)

Gruß

Robert