Seite 1 von 1

Verbesserungsideen

Verfasst: Mi, 18.07.2007 10:24
von nusta88
hallo,

ich schreibe für ein base dokument makros, allerdings habe ich da probleme mit der Aktualiserung. Dieser Code dafür ist glaub ich doch nicht so nützlich:

Code: Alles auswählen

oDVerb.gettables().refresh()
hätte jemand Verbesserungsvorschläge. Danke im Voraus.

Re: Verbesserungsideen

Verfasst: Mi, 18.07.2007 10:42
von Stancer
Hallo nusta88.
Dieser Code

Code: Alles auswählen

Sub Relaod
Dim Book%, oForm as Object
      oForm = ThisComponent.DrawPage.Forms(0)
      oForm.reload
     
End Sub
aktualisiert das gesamte Dokument.
Hoffe das hilft dir.
mfg Stancer

Re: Verbesserungsideen

Verfasst: Mi, 18.07.2007 10:50
von nusta88
jo danke, aber richtig funktionieren tut das auch nicht, weil das ja nicht auf den base dokument zugreift.

Re: Verbesserungsideen

Verfasst: Mi, 18.07.2007 10:57
von Stancer
Ich habe das Makro bei mir an einen Button gebunden und fuktioniert einwandfrei.
Wenn es nicht läuft musst du warscheinlich noch einen Datenbankkontext und ein Statement erzeugen.

Re: Verbesserungsideen

Verfasst: Mi, 18.07.2007 11:04
von nusta88
also ich hab das auch einem button zugewiesen aber funktioniert hat es immer noch nicht. also es passiert nichts es ist immer noch wie vorher

Re: Verbesserungsideen

Verfasst: Mi, 18.07.2007 11:21
von Stancer
Probier mal das:

Code: Alles auswählen

Sub Relaod
Dim oDoc  As Object
Dim oForm as Object
 oDoc = ThisComponent    
  oForm = ThisComponent.DrawPage.Forms(0)
      oForm.reload
     
End Sub
damit sollte das MAkro auf das aktuelle Dokument zugreifen und diese aktualisieren.
Ich arbeite noch nicht so lange mit Makros, wenns also nicht klappt kann ich dir höchstwarscheinlich leider auch nicht mehr weiter helfen.

mfg Stancer

Re: Verbesserungsideen

Verfasst: Mi, 18.07.2007 12:09
von nusta88
Stancer hat geschrieben:b Relaod
Dim oDoc As Object
Dim oForm as Object
oDoc = ThisComponent
oForm = ThisComponent.DrawPage.Forms(0)
oForm.reload

End Sub
Sei mir nicht böse aber man merkt bisschen das du ein Anfänger bist. ich bin auch eins. Von daher sollte man lieber spaß haben neues zu lernen. also du hast zwar odoc gemacht aber diese benutzt du dann später gar nicht mehr im quellcode. das heißt dieser code ist wie der von vorher. meine aktualiesierung also RELOAD oder REFRESH sollten beide für base sein. dein code würde aber mit calc höchstwahrscheinlich funktionieren. ich brauche so ein code für base

Re: Verbesserungsideen

Verfasst: Mi, 18.07.2007 12:32
von komma4
DRAWPAGES sind nicht für BASE.
Was möchtest Du denn aktualisieren?

ACHTUNG, zum Mitschreiben:

Base ist ein Daten-Frontend.
Ein "Base-Dokument" ist ein Container für Tabellen, Formulare, Abfragen einer Datenquellen-Verbindung.
Das Ändern an einem Base-Dokument hat erstmal nichts mit den hinterlegten Daten zu tun.

Re: Verbesserungsideen

Verfasst: Mi, 18.07.2007 13:01
von nusta88
also was ich aktualisieren will ist dies. ich erstelle per makro tabellen. allerdings werden diese nicht sofort angezeigt. ich muss erst per mausklick auf tabellen aktualisieren drücken. zwar hat andrew über diese aktualisierung was geschrieben aber iwie bekomme ich das bei mir nicht hin.

Re: Verbesserungsideen

Verfasst: Mi, 18.07.2007 14:30
von komma4
Andrew schreibt:

a) das die Anweisung hierzu ziemlich einfach sei

Code: Alles auswählen

oCon.getTables().refresh()
also, über die aufgebaute Verbindung (databasecontext>datasource>connection) geht, und
b) dass es bei seinen Versuchen nicht immer funktioniert.

Kann also durchaus sein, dass Du in einen Bug läufst.

Re: Verbesserungsideen

Verfasst: Do, 19.07.2007 10:02
von nusta88
ohh naja trotzdem danke hier bekommt man echt schnelle antworten