Seite 1 von 1
Keine Rückmeldung nach Makro-Bearbeitung
Verfasst: Mi, 16.10.2013 15:30
von FabianS
Hallo zusammen,
ich habe ein Base-Problem, das leider nicht zuverlässig reproduzierbar auftritt und zu dessen Herkunft ich leider keine Idee habe.
Wenn es auftritt, äußert es sich auf folgende Weise:
- Ich öffne zunächst mein Datenbank-Dokument (HSQL-DB).
- Daraufhin starte ich ein Formular, welches sich auch wie gewohnt öffnet.
- Ich klicke nun auf einen Button im Formular, der ein Makro auslöst.
(In diesem OOO-Basic-Makro wird ein SQL-Befehl ausgeführt, der die Tabelle manipuliert, deren Inhalt im Formular dargestellt wird. Es wird dabei der Inhalt einer gesamten Spalte geändert.)
---> Als Ergebnis friert das Formular ein und in der Kopf-Leiste des Fensters kommt die Info "Keine Rückmeldung". Es bleibt dann nur noch das Beenden von OpenOffice.
Ist der Fehler einmal aufgetreten, lässt er sich beim nächsten Öffnen verhindern, indem ich einmal eine Tabelle des Dokuments öffne und schließe. Daraufhin funktioniert alles wie gewünscht.
Auch das Makro selbst bereitet dann keine Probleme.
Ich weiß, meine Beschreibung ist schwammig, aber ich habe wirklich keinen Schimmer, wonach ich zu suchen habe.
Hat jemand dennoch eine Idee? Ich bin für jede Anregung dankbar.
Re: Keine Rückmeldung nach Makro-Bearbeitung
Verfasst: Mi, 16.10.2013 18:55
von F3K Total
Hi,
ohne Kenntnis des Makro Codes wird es schwierig Dir zu helfen.
Am besten wäre natürlich, du lädst die Datenbank hoch, kann mir aber vorstellen, dass dies ohne Verfremdung der Daten nicht möglich ist.
Gruß R
Re: Keine Rückmeldung nach Makro-Bearbeitung
Verfasst: Do, 17.10.2013 07:42
von FabianS
Hallo,
das ist das verwendete Makro:
Code: Alles auswählen
REM Verbindung zum Server aufbauen
oForm = thiscomponent.drawpage.forms.MainForm
oCon = oform.activeconnection
SQL_Statement = ocon.createStatement()
REM SQL-Ausdruecke festlegen
sSQL = "Update ""Elektroartikel gesamt"" set ""Vorwahl"" = true"
REM SQL-Ausdruecke ausfuehren
SQL_Statement.executeupdate(sSQL)
oForm.reload
Dabei nutze ich "Vorwahl" als Filter-Kriterium für das Tabellen-Kontrollfeld in meinem Formular, um nur bestimmte, in der Datenbank aufgeführte Artikel, anzeigen zulassen.
Andere Makros, die ich verwende, habe ich immer nach diesem Strickmuster erstellt und der "Effekt" ist auch bei allen derselbe.
Den Inhalt des Makros hat man mir netter Weise hier im Forum ausgebreitet, ich habe lediglich Bezeichner für meine Zwecke angepasst.
Das Vorgehen funktioniert in einer anderen DB tadellos und auch in dieser arbeitet das Makro in der Regel. Die einzige Ausnahme ist das beschriebene Promblem beim Öffnen.
Die Datenbank selbst kann ich leider nicht öffentlich machen.
Zwischen den beiden Datenbanken gibt es nur zwei mir bewusste Unterschiede:
Bei der gelegentlich nicht funktionierenden DB
- habe ich die Daten aus einem alten MS-Works-Format über ein Calc-Sheet nach Base importiert.
- ist die Datenmenge wesentlich größer: ca. 2700 Einträge bei 32 Spalten unterschiedlichen Typs.
Wenn ich die maximale Anzahl der Zeichen laut den definierten Feldtypen addiere, komme ich auf maximal 772 Zeichen pro Datensatz.
Im anderen Fall haben Eingaben immer nur über ein Formular stattgefunden und das Datenvolumen ist wesentlich geringer.
Verletzt die Tabelle selber vllt. irgendwelche Grenzen? Ich danke jedem, der bis hierhin gekommen ist, für die Mühe des Lesens
MfG
Re: Keine Rückmeldung nach Makro-Bearbeitung
Verfasst: Do, 17.10.2013 19:03
von F3K Total
Hi,
nur ein Versuch, füge zwei Zeilen hinzu:
Code: Alles auswählen
REM Verbindung zum Server aufbauen
ocontroller = ThisComponent.currentController
if not ocontroller.isconnected then ocontroller.connect
oForm = thiscomponent.drawpage.forms.MainForm
oCon = oform.activeconnection
SQL_Statement = ocon.createStatement()
REM SQL-Ausdruecke festlegen
sSQL = "Update ""Elektroartikel gesamt"" set ""Vorwahl"" = true"
REM SQL-Ausdruecke ausfuehren
SQL_Statement.executeupdate(sSQL)
oForm.reload
Gruß R
Re: Keine Rückmeldung nach Makro-Bearbeitung
Verfasst: Fr, 18.10.2013 07:19
von FabianS
Hallo,
ich habe die Zeilen eingefügt, was bei mir leider zu einer Fehler-Meldung führt:
"BASIC-Laufzeitfehler. Eigenschaft oder Methode nicht gefunden: isConnected."
Ich verwende aktuell OO 4.01. Bei Vorgänger-Versionen ist der ursprüngliche Fehler allerdings auch aufgetreten.
Haben mein Fehler und diese Fehler-Meldung vielleicht dieselbe Ursache?
MfG
Re: Keine Rückmeldung nach Makro-Bearbeitung
Verfasst: Fr, 18.10.2013 17:04
von F3K Total
Hi,
so etwas passiert, wenn man es aus dem Kopf schreibt, streiche in der ersten Zeile
setze
dann sollte es klappen.
Gruß R
Re: Keine Rückmeldung nach Makro-Bearbeitung
Verfasst: Mo, 21.10.2013 14:43
von FabianS
Hallo,
ich habe die Zeile angepasst. Das Makro wird mit der Korrektur dann ohne Fehler-Meldung bearbeitet. Leider taucht aber der ursprüngliche Fehler weiterhin auf. Hast Du oder hat jemand von Euch noch eine Idee? Ist es möglich, dass der Fehler außerhalb vom Makro zu suchen ist? Gibt es irgendein Log, was Auskunft über die Ursache des Programm-Absturzes geben kann?
MfG