Seite 1 von 1

Makro schreibt Feld in Tabelle

Verfasst: Fr, 18.01.2008 11:46
von Gabriel123
Hallo,

ich habe folgenden Code um in einer tabelle eine neue Row anzulegen und zu beschreiben. Ich möchte ihn nun so abändern, dass er nur ein oder 2 Felder des aktuellen Formulardatensatzes in die tabelle schreibt und danach keine neue Row anlegt. ich möchte einfach nur einige Formularfelder des aktuellen datensatzes zurücksetzen und dann mit diesem Datensatz weiterarbeiten.

Hier mal der aktuelle Code:

Code: Alles auswählen

sub update
   Dim dbContext
   Dim dataSource
   Dim connection
   Dim stmt
   Dim dest   
   
dbContext  = CreateUnoService("com.sun.star.sdb.DatabaseContext")
   dataSource = dbContext.getByName("DBImportF4")  ' This is an OOo 2.0 Base HSQL registered 
data source
   connection = dataSource.getConnection("", "")
   dest = createUnoService("com.sun.star.sdb.RowSet")
   With dest
      .activeConnection = connection
      .CommandType = com.sun.star.sdb.CommandType.COMMAND
      .Command = "SELECT * FROM ""Adressen2"""
      .execute
      .afterlast 
   End With 
   dest.moveToInsertRow()
   dest.updateNull(1)
   dest.updateNull(2)
   dest.updateString(3, txtKundennr)
   dest.insertRow() 
   end sub
Kann mir jemand weiterhelfen?=)

Re: Makro schreibt Feld in Tabelle

Verfasst: Sa, 19.01.2008 05:35
von komma4
Gabriel123 hat geschrieben:in die tabelle schreibt und danach keine neue Row anlegt.
?
Du schreibst in die Tabelle, dann lässt Du die Abfrage zur Anzeige im Formular laufen, um die Wert dort zu aktualisieren.
Ein INSERT legt einen Datensatz an, keinen zweiten.

Was verstehe ich hier nicht?

Re: Makro schreibt Feld in Tabelle

Verfasst: Sa, 19.01.2008 10:42
von Gabriel123
Oh Sorry, da habe ich mich nicht ganz richtig ausgedrückt. Also ich speichere per Button die Datensätze. Dann verändere ich sie ein wenig und will mit dem gleichen Button wieder speichern. Dann entsteht der 2. Datensatz. Ich möchte aber immer auf dem aktuellen Datensatz speichern, egal wie oft ich da klicke.:)

Ich habe ein formular, das sich öffnet. Dann werden variablen auf die Textfelder aufgeteilt. Dann speichere ich per Button. Hier muss der zeiger zur insertrow um nicht einen alten Datensatz, der schon in der Tabelle ist zu überschreiben. Wenn ich dann die Felder ändere und wieder auf speichern gehe (gleicher button) darf aber kein neuer datensatz entstehen sonder lediglich ein update erfolgen.

Ich weiss garnicht ob das in ein und demgleichen Makro unterzubringen ist.

vielleicht macht es sinn, wenn beim öffnen des Formulars Nicht der letzte Datensatz der Tabelle angezeigt wird sondern bereits ein leerer / neuer. Dann kann per button direkt in die Currentrow? / wo der zeiger des Formulars gerade steht gespeichert werden, und auch mehrfach gespeichert werden. Dann kann das formular geschlossen werden und beim nächsten aufruf springt der zeiger direkt in eine neue row. Das Speichern soll also immer nur ein Update sein...

Drück ich mich halbwegs verständlich aus? Seh manchmal selbts nicht mehr durch=)
Vielen DAnk für jede Hilfe!!