🙏 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. 🤗
Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
-
Mocke47
- Beiträge: 17
- Registriert: Di 20. Nov 2012, 15:19
Beitrag
von Mocke47 » Di 6. Dez 2016, 07:42
Hallo,
ich habe folgendes Problem:
Code: Alles auswählen
Sub Kundennummer
Dim zahl as Integer
zahl = DMAX("numKundennummer","tblNummernkreise")
setValue("Forms!frmKunden!fmtkunNummer", "" & zahl & "")
End Sub
Das Makro funktioniert zwar, sprich er übergibt die Zahl an das fmtkunNummer und zeigt die Zahl auch beim Laden des Formulars an, aber irgendwie nicht richtig. Beim abspeichern des Datensatzes meckert er dann, da fmtkunNummer der Primärschlüssel ist, dass ein Wert eingetragen werden muss?
Mocke47
Zuletzt geändert von
Mocke47 am Mi 7. Dez 2016, 08:10, insgesamt 2-mal geändert.
-
Mocke47
- Beiträge: 17
- Registriert: Di 20. Nov 2012, 15:19
Beitrag
von Mocke47 » Di 6. Dez 2016, 09:24
Kurzes Feedback:
Code: Alles auswählen
Sub Kundennummer
Dim zahl as Integer
zahl = DMAX("numKundennummer","tblNummernkreise")
setValue("Forms!frmKunden!txtkunBezeichnung", "" & zahl & "")
End Sub
Ich habe jetzt einfach mal in der setValue-Funktion ein Textfeld (txtkunBezeichnung) genommen. Da wird der Wert richtig übernommen und auch gespeichert. Ist alles nachvollziehbar, aber wie bekomme ich ein Integer übergeben, da mein fmtkunNummer ein Integer-Feld ist?
Mocke47
-
RobertG
- * LO-Experte *
- Beiträge: 2884
- Registriert: Sa 19. Mai 2012, 17:37
-
Kontaktdaten:
Beitrag
von RobertG » Di 6. Dez 2016, 20:06
Hallo Mocke47,
wenn ich den Code sehe, dann verwendest Du vermutlich Access2Base. Schau hier gegebenenfalls nach Hinweisen:
http://www.access2base.com/access2base.html
In Basic reicht es nicht, einen Wert zu ändern. Damit wird erst einmal nur die Ansicht geändert. Es geht vielmehr darum, den Wert auch der darunterliegenden Datenbank mitzuteilen.
Das würde bei einem vorgegebenen Formularfeld so laufen:
Code: Alles auswählen
oField = thisComponent.drawpage.forms.frmKunden.fmtkunNummer
oField.BoundField.updateInt( zahl )
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
-
Mocke47
- Beiträge: 17
- Registriert: Di 20. Nov 2012, 15:19
Beitrag
von Mocke47 » Mi 7. Dez 2016, 08:08
Hallo RobertG,
danke für die schnelle und punktgenaue Hilfe
Code: Alles auswählen
Sub Kundennummer
Dim zahl as Integer
Dim oField as Object
zahl = DMAX("numKundennummer","tblNummernkreise")
oField = thisComponent.drawpage.forms.MainForm.fmtkunNummer
oField.BoundField.updateInt( zahl )
End Sub
So funktioniert es!
In Access2Base steht nicht wirklich viel zu der setValue-Funktion, zumindest was die Übergabe von Zahlen angeht. Habs auch mit dem Variant-Type probiert. Geht leider auch nicht bzw. wird, wie Du schon sagst, nur die Ansicht geändert. Außer man steuert ein Textfeld (siehe kurzes Feedback von mir) an, dann geht es komischerweise?
Danke
Mocke47
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.