wie lautet der Befehl zum Daten schreiben? (gelöst)

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: wie lautet der Befehl zum Daten schreiben? (gelöst)

Re: wie lautet der Befehl zum Daten schreiben?

von Noebian » Mo, 31.10.2011 20:12

Jo, man wird nicht dümmer dabei.
Aber dein Hinweis hat bei mir einiges in Bewegung gebracht. Ich denke noch viel zu stark von Access her. Aber so gaaanz allmählich beginne ich immer mehr die Stärken von Base zu erkennen.
Danke noch mal.

Re: wie lautet der Befehl zum Daten schreiben?

von F3K Total » Mo, 31.10.2011 19:06

Hi,
nichtsdestotrotz kannst Du Dein Makro gut gebrauchen, wenn Du ein Unterformular benötigst.
Wenn Du also Daten verknüpft in zwei oder mehrere Tabellen schreiben möchtest.

Gruß R

Re: wie lautet der Befehl zum Daten schreiben?

von Noebian » Mo, 31.10.2011 18:59

Super F3K!
Das kommt davon, wenn man sich auf die Assistenten verlässt. Deine Lösung ist natürlich viel simpler.
Danke schön. Ich habe viel zu kompliziert gedacht.

Re: wie lautet der Befehl zum Daten schreiben?

von F3K Total » Mo, 31.10.2011 18:52

Also, ich verstehe die ganze Aufregung nicht.
Du hast eine einzige Tabelle, in der Du alle Daten verwalten willst. Du benötigst kein Unterformular. Packe die einzelnen Felder auf das gleiche Formular, und die Sache läuft.
Mein Rat: Setze Dich mit dem Aufbau von Formularen auseinander und nutze den Formular Navigator im Bearbeitungsmodus.
Dann siehst Du den Unterschied zwischen Deiner Datei und der angehängten.

Gruß R
Dateianhänge
Beispiel_Subform_Noebian.odb
(12.57 KiB) 54-mal heruntergeladen

Re: wie lautet der Befehl zum Daten schreiben?

von Noebian » Mo, 31.10.2011 18:52

Auch gelöst. Ich will ja nicht nerven, aber vielleicht interessiert das auch andere:

Code: Alles auswählen

sub reload
dim oForm, oSubForm as object
dim intDatensatz as integer
oForm=ThisComponent.drawpage.forms.getbyIndex(0)
oSubForm = oForm.getByName("SubForm")
oSubForm.updateRow
intDatensatz = oForm.getRow()
oForm.reload
oForm.absolute(intDatensatz)
end sub

Re: wie lautet der Befehl zum Daten schreiben?

von Noebian » Mo, 31.10.2011 18:28

Ich glaub', ich hab's jetzt. Das hier scheint zu funktionieren:

Code: Alles auswählen

sub reload
oForm=ThisComponent.drawpage.forms.getbyIndex(0)
oSubForm = oForm.getByName("SubForm")
oSubForm.updateRow
oForm.reload
end sub
ein Problem taucht dabei allerdings auf: die Anzeige springt automatisch zum ersten Datensatz. Wie komme ich denn da wieder zum aktuellen zurück? *seufz*

Re: wie lautet der Befehl zum Daten schreiben?

von komma4 » Mo, 31.10.2011 18:13

Tja, und die "Original"-Datei ist gleich Deinem Beispiel... nur: da geht's nicht?!

Das kann nicht sein.


Tipp:

Arbeite mit dem EVENT-Objekt, bei dem Ereignis: Nach dem Datensatzwechsel (des Sub-Formulars)

Und verwende XRAY und/oder MRI zur Untersuchung Deiner Objekte

Re: wie lautet der Befehl zum Daten schreiben?

von Noebian » Mo, 31.10.2011 17:53

Hi,
ich habe folgendes versucht:

Code: Alles auswählen

sub reload
oForm=ThisComponent.drawpage.forms.getbyIndex(0)
oForm.reload
end sub
bei der Beispieldatenbank funtioniert das auch - bei meiner anderen, die ich in Arbeit habe, dummerweise nicht. Sie hat die gleiche Struktur, aber dort bewirkt der gleiche Befehl, dass die veränderte Zeile (SubForm) durch die unveränderte Tabellenzeile (Mainform) überschrieben wird. WEnn ich jedoch das veränderte Formular schließe und wieder öffne, dann hat die DB die veränderte Fassung übernommen.
Leider sind dort zuviele personenbezogene Daten als dass ich sie veröffentlichen könnte...

Nachtrag: ändere ich den Datensatz,gehe einmal zum nächsten und wieder zurück und führe dann das Makro aus, wird die Mainform geändert, so wie es sein soll. Merkwürdig, oder?

Nachtrag2: Jetzt wird es ganz verrückt. Öffne ich die Beispieldatenbank, funktioniert das Makro wie gewünscht. Öffne ich dann die andere DB und gehe danach zurück zur BeispielDB verhält sie sich plötzlich anders als vorher. Nun wird auch dort die veränderte SubForm von der unveränderten MainForm überschrieben...

Re: wie lautet der Befehl zum Daten schreiben?

von komma4 » Mo, 31.10.2011 16:19

Der Befehl heisst: .reload()

Das wurde Dir oben schon gesagt, wenn Du damit experimentiert hast, dann zeige uns Deine Versuche...

Und Deine OOo-Version, Dein Betriebssystem, bitte!

Re: wie lautet der Befehl zum Daten schreiben?

von Noebian » Mo, 31.10.2011 14:16

Warum schreibst Du hier im Makro-Unterforum?
weil ich nach einem Makro suche!
Nochmal zum Verständnis - funktioniert es bei dir anders als bei mir?
Ich ändere im rechten Feld "Hans" zu "Hansen". Tabellenfeld bleibt unverändert.
Ich wechsle den Datensatz und lasse mir Peter Petersen anzeigen.
Dann gehe ich zurück: Im Tabellenfeld steht immer noch "Hans", im rechten Feld "Hansen"
Erst wenn ich das Formular komplett schließe und wieder öffne, ist die Änderung im Tabellenfeld angekommen.
Ich möchte nun, dass das Tabellenfeld automatisch aktualisiert wird, wenn das rechte Feld verändert wurde.
Wie kann ich das erreichen?

Re: wie lautet der Befehl zum Daten schreiben?

von komma4 » Mo, 31.10.2011 12:16

Achja... Makros waren keine dabei?

Warum schreibst Du hier im Makro-Unterforum?

Re: wie lautet der Befehl zum Daten schreiben?

von komma4 » Mo, 31.10.2011 12:10

Noebian hat geschrieben:die Daten werden (noch) nicht in die Datenbank geschrieben. Auch dann nicht, wenn ich die Datensätze wechsle.
Das ist nicht korrekt:

die Daten im Sub-Formular werden in die (DB-)Tabelle geschrieben - beim Wechsel des Datensatzes (wie erwartet).
[LO 3.4.3]

Die Tabellenansicht Deiner Daten wird (natürlich) ohne Befehl nicht aktualisiert.

Re: wie lautet der Befehl zum Daten schreiben?

von Noebian » Mo, 31.10.2011 10:37

Nun denn: etwa so....
Dateianhänge
Beispiel.odb
schlichtes Beispiel
(12.66 KiB) 58-mal heruntergeladen

Re: wie lautet der Befehl zum Daten schreiben?

von komma4 » So, 30.10.2011 20:01

Beispieldatei... sonst sind alle Hilfeversuche "stochern im Nebel"

Re: wie lautet der Befehl zum Daten schreiben?

von Noebian » So, 30.10.2011 19:44

Hallo R.
ja, genau das ist das Problem: die Daten werden (noch) nicht in die Datenbank geschrieben. Auch dann nicht, wenn ich die Datensätze wechsle. Das passiert erst dann, wenn ich das Formular schließe und wieder öffne. Und genau das möchte ich per Makro erreichen: dass die Daten, die ich ins Unterformular eingetippselt habe in die DB geschrieben und so im Hauptformular sichtbar werden . updateRow funzt auch nicht....

Nach oben