Hallo Jochen
Am 15.01.2012 16:17, schrieb 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

--
Informationen zum Abmelden: 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

Antwort per Email an