Meine Situation:
Ich habe mit ooBase eine Datenbank gemacht (SO-Cad-NGs) und darin eine Tabelle (Tabelle1) und ein Formular (Dateneingabe).
Das Formular hat keine Subformulare und ist als "Datenblatt" angelegt worden.
Daten dürfen in diesem Formular angelegt, verändert und auch gelöscht werden.
Bei der Dateneingabe hab ich zu einem Tag mehrere Datensätze. Ich gebe aber auch nachträglich mehrere Tage ein.
Was ich möchte:
Wenn ich in diesem Form einen neuen Datensatz anlege, möchte ich, dass das höchste Datum der Tabelle als Standardwert in der Spalte Datum automatisch schon eingetragen wird.
Die Felder in der Tabelle1 sind:
long Spielertyp
long Partnertyp
long Gegnertyp
long NGs
boolean Eagle
long NGs
date Datum
Das höchste Datum ist ja auch kein Problem: SELECT MAX("Datum") AS maxDate FROM "Tabelle1"
ich war auch schon soweit gekommen, dass ich diese Abfrage in ooBasic ausführen konnte und bekam ein ResultObject und konnte den Wert in eine Variable speichern.
Aber wie ich dann jetzt auf den neuen Datensatz zugreife und dort den Wert einfüge ist mir weiterhin ein Rätsel.
Ich will ja nicht ein Textfeld mit einem anderen Wert versehen, oder ein beliebiges Control benennen... hab ich alles gefunden, aber nicht wie ich den neuen (noch nicht gespeicherten) Datensatz in dem Formular ansprechen kann...
Andy
Edit:
hier mal das, was ich bisher habe:
Code: Alles auswählen
Function getMaxDate
Dim oStatement, oDBSource, oConnection, rRowset As Object
Dim sQuery as String
Dim dDate as Date
oDatabaseContext = createUnoService( "com.sun.star.sdb.DatabaseContext" )
oDBSource = oDatabaseContext.GetByName("SO-Cad-NGs")
oConnection = oDBSource.GetConnection("", "")
oStatement = oConnection.createStatement()
sQuery = "SELECT MAX(""Datum"") AS MaxDate FROM ""Tabelle1"""
rRowset = oStatement.executeQuery( sQuery )
if(rRowset.isbeforefirst) then rRowset.next
dDate = rRowset.getString(1)
'msgbox(dDate)
getMaxDate = dDate
End Function
Sub setMaxDate(oForm as Object)
dim dDate as Date
dim oControl as Object
oControl = oForm.GetByName("Mainform_Grid")
' und nu weiß ich nich weiter...
End Sub
Wenn ich bei den Ereignissen des Grid nachschaue weiss ich nicht welches ich nutzen kann, um die Erzeugung eines neues Datensatzes abzufangen.
Wenn ich innerhalb des Grids bei der Spalte "Datum" auf die Ereignisse schaue, seh ich genauso wenig.
Vielleicht bin ich da auch total falsch?
Ich hätte eigentlich gedacht, dass ich bei den Eigenschaften der Spalte bei "Standarddatum" einfach die Funktion getMaxDate() eintrage und es das übernimmt. Aber da bin ich wohl von einer anderen Office-Entwicklungsumgebung in der Vergangenheit zu sehr verwöhnt worden.

Andy