On 15.11.2014 10:21, Robert Großkopf wrote:
> Hallo Wolfgang,
Hallo Robert,
vielen Dank für Deine Bemühungen.
> Du liest hier das aus, was in den Feldern geschrieben steht. Die
> Eigenschaft "Text" gibt es nicht bei allen Kontrollfeldern. Nimm doch
> direkt CurrentValue. Dann hast Du den Wert und auch wirklich einen
> Zahlenwert. INTEGER aus dem Datenbankbereich müsste LONG im Makro sein,
> wenn Du in entsprechend hohe Zahlenbereiche kommst.
Das hat mit CurrentValue funktioniert jeweils die einzelnen IDs aus den
dantenbankgebundenen Feldern auszulesen.
Das größere Problem war es, das Datum aus dem nicht an ein Datenbankfeld
gebundenen Datumsfeld im Formular zu lesed, das hat letztlich nur mit
DIM sSqlDate AS STRING
DIM unoDatum AS NEW com.sun.star.util.Date
.
.
.
oField = oSubForm.getByName("zuordnungsdatum")
unoDatum = oField.getCurrentValue()
Und dann ist es auch einfach das Datum in einen String umzuwandeln :-)
sSqlDate = unoDatum.Year & "-" & unoDatum.Month & "-" & unoDatum.Day
Das hat mich echt Schweiß gekostet zumal ich vorher alle Variationen von
Datentypen für das Datumsfeld (STRING, DATE, INTEGER, ..) in Kombination für
alle Varianten von Methodenaufrufen (Current Vaule mit und ohne get oder () )
die mir eingefallen sind getestet habe ..
Liebe Grüße ..
Wolfgang
>> Wo finde ich eine Liste der Methoden mit denen man die ausgelesenen
>> Feldinhalte in Variablen speichern kann?
> Hast Du Dir das Base-Handbuch herunter geladen? Da wirst Du auch mit
> Beispielen versorgt:
> http://de.libreoffice.org/hilfe/dokumentation/
> Die jeweils aktuell in Bearbeitung befindliche Version kannst Du hier
> nachsehen:
> http://robert.familiegrosskopf.de/lo_hb_dev/
>
>> Wie speichere ich das Datum in eine Variable, die dann hinterher das
>> Datum über ein SQL-Statement in die Datenbank speist?
>> Das Datum entstammt im konkreten Fall einem reinen Eingabefeld, stammt
>> also nicht aus irgendeiner Datenbanktabelle.
> Da steht dann auch etwas über die Umwandlung von Datumswerten. Für die
> Weitergabe an die Datenbank musst Du so einen Datumswert so zusammen
> fügen: 2014-11-15.
>
> Vielleicht hilft Dir diese Funktion:
>
> FUNCTION Date_2_SQLDate(d AS DATE) AS STRING
> DIM stMonth AS STRING
> DIM stDay AS STRING
> IF Month(d) < 10 THEN
> stMonth = "0" + Trim(Str(Month(d)))
> ELSE
> stMonth = Trim(Str(Month(d)))
> END IF
> IF Day(d) < 10 THEN
> stDay = "0" + Trim(Str(Day(d)))
> ELSE
> stDay = Trim(Str(Day(d)))
> END IF
> Date_2_SQLDate = Trim(Str(Year(d))) +"-"+ stMonth +"-"+ stDay
> END FUNCTION
>
> Gruß
>
> Robert
>
>
--
Liste abmelden mit E-Mail an: [email protected]
Probleme?
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert