Hallo Jochen
ich möchte für Base ein Makro erstellen, das in einem Tabellenkontrollfeld in einem Formular u.a. folgenden zwei Aufgaben durchführen soll:
1) Nummer des letzten Datensatzes einer Tabelle auslesen.
2) Befehl "Neuer Datensatz" ausführen.
Habe das Makro noch erweitert, damit der Fokus danach auch auf dem Tabellenkontrollfeld ist,
und du somit direkt hineinschreiben kannst.
Hier der Code:
(muss direkt aus dem Formular ausgeführt werden)
Sub Formular_Manipolation
Dim oform As Object
Dim aData(1) As variant
Dim nAnzahl As Long ,i%
' Nummer des Formulars(0) und Name des Tabellenkontrollfeldes ("MainForm_Grid") bitte anpassen !!
oform=thiscomponent.drawpage.forms(0).getByName("MainForm_Grid")
'anzahl der einträge
nAnzahl = oform.getRowSet.RowCount
MsgBox "Das Formular hat " & nAnzahl & " Datensätze."
'gehe zu letzten Reihe mit einträgen
oform.getRowSet.Last
'hole den inhalt des letzten eintrags in ein Array(nur Datum und Text)
Redim aData( oform.Count -1)
for i=0 to oform.Count -1
If oform.getByIndex(i).DataFieldProperty = "Date" Then
aData(i) = oform.getByIndex(i).Date
else
aData(i)= oform.getByIndex(i).Text
end if
MsgBox "Letzter Datensatz Spalte" & i+1 & " Lautet: " & Chr(10) & aData(i)
next
'Neuer Eintrag(gehe zu letzten Reihe)
oform.getRowSet.moveToInsertRow(false)
'Fokus setzen, damit mann direckt hineinschreiben kann.
thiscomponent.CurrentController.getControl(oform).setFocus
end sub
Gruß Frieder