Seite 1 von 1

Speichern unmöglich + com.sun.star.unoRuntimeException

Verfasst: Do, 26.01.2012 13:48
von CamuelSpenser
Hallo Ihr lieben Leute :)

Ich steh nun vor einem grösseren Problem... :S

Hab etliche Makros in nem Dokument, da ich es genauso machen musste wie im M$ Excel,
Einige von euch wissen bestimmt noch worum es dabei ging.

Nun alles klappt hervorragend. Es klappte.
Aber nun ist dabei ein neues Problem herausgekommen.. wenn die Datei 30min+ geöffnet ist.

Hier sind nun 2 verschiedene Fehler aufgetreten.
Zum einen bekomme ich nun eine RuntimeException wie folgt :
Bild

Als weiterer Fehler tritt auf, dass man das Dokument nicht mehr Abspeichern kann...
Mit einer Meldung : Es ist ein Fehler aufgetreten. Speichern zur Zeit nicht möglich..

Dies scheint aber nicht mit dem RuntimeError zusammenzuhängen, da auch ohne Meldung des RuntimeErrors, nach einer gewissen Zeit das speichern nicht mehr möglich ist.

Würde mich freuen, wenn einer von euch mir bei meinem Problem Helfen könnte, bzw. mir Tipps geben könnte voran es liegen könnte?

Mit Freundlichen Grüßen,
Camuel

P.S. : Im Anhang findet ihr die Datei inkl. Makros.
(Mir ist leider entfallen wie man PW von den Makros wieder runternehmen kann -> PW : Topgranit )

Re: Speichern unmöglich + com.sun.star.unoRuntimeException

Verfasst: Do, 26.01.2012 16:30
von Frieder D.
Hallo Camuel

Bei mir kam bis jetzt noch keine Fehlermeldung, und das Dokument lässt sich noch speichern.
Ich hbe LibreOffice3.3.4 und Win 7
Ich kann dir zwar noch nicht sagen, warum sich das Dokument bei dir nicht speichern lässt,
aber mir ist ein Fehler in deiner Programierung aufgefallen.
du verwendest in fast jedem Makro folgenden Code:

Code: Alles auswählen

dim oAuslesen   as Object
...
oAuslesen     = oEvent.Source.Model.Name
Bei mir kommt zu recht immer die Meldung:
Kein Zugriff auf Objekt.
Falsche Verwendung eines Objekts.
Richtig muss es der Code Heißen:

Code: Alles auswählen

dim sAuslesen   as String
...
sAuslesen  = oEvent.Source.Model.Name
,
da es sich bei der Variablen um einen String, und nicht um ein Object handelt.

Wenn du dich ein bisschen mehr an die Namenskonventionen von Variablen hältst,
dann wäre dein Code auch besser zu lesen, und du könntest Fehler besser vermeidest.
1. Variablen immer klein anfangen also z Statt Z (Konstanten werde Groß Geschreibe: Const IZAHL=7)
2.Der erste Buchstabe sollte schon zeigen, um was für eine Variable es sich handelt:
Beispiele:
oDoc -> Object
sName -> String
iZahl -> Integer
lZahl -> Long
i,j,k,l,n,m -> integer oder Long(oft als Zähl-Parameter für Schleifen)
fZahl-> Single=Gleitkomma mit 4 Byte Genauigkeit
dZahl-> Double=Gleitkomma mit 8 Byte Genauigkeit
bWert->Boolean=Wahrheitswert
vVariable-> Variant=Unbestimmt
...
diese Konventionen sind zwar nicht zwingend,
der Code läuft also auch wenn du z.B.dim oName As String schreibst,
aber es ist viel übersichtlicher, wenn man sich an diese Konventionen hält.
Außerdem kann man so Fehler vorbeugen, und für dritte ist es viel leichter den Code zu lesen.

Gruß Frieder