Unproblematischer Teil, aber der Vollständigkeit halber abgedruckt:
Code: Alles auswählen
sub Fachlisten_erstellen
rem Variable
Dim klasse As String
GlobalScope.BasicLibraries.LoadLibrary("Tools")
Path=createunoservice("com.sun.star.util.PathSettings")
Dim conn As Object
rem Datenbankzugriff
oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
dbSource = oDBContext.GetByName("Klassenlisten")
path.work = DirectoryNameoutofPath(thisComponent.getUrl(), "/")
conn = dbSource.GetConnection("","")
Code: Alles auswählen
oDialog1 = LoadDialog("Standard", "Klasse_abfragen")
oDialog1.SetTitle("Vorlagen für Fachliste erstellen")
iResult = oDialog1.Execute()
rem Abbruch bei Cancel oder falschem Wert
klasse = oDialog1.GetControl("input").Text
i = CInt(klasse)
if (iResult = 0) or (i < 1) or (i > 13) then
exit sub
end if
oDialog1.Dispose()
Code: Alles auswählen
rem hole die Fächer der gewünschten Klasse per SQL
cmd = conn.CreateStatement()
cmdString = "SELECT Kuerzel, Titel, Fachname, Lehrer, Teilnahmevermerk " & chr(13) _
& "FROM Fachliste WHERE Klasse = " & klasse
' msgbox cmdstring nur zur Kontrolle, er sieht sauber aus
result = cmd.executeQuery(cmdString)
if IsNull(result) then
msgbox "Keine Datensätze gefunden"
else
while result.Next() ''' Hier knallt es !!!!!!
Fachliste_Erstellen( conn, _
klasse, result.getString(1), _
result.getString(2), result.getString(3), _
result.getString(4), result.getString(5) )
wend
end if
end sub
Was kann da passiert sein? Datensätze sind unverändert vorhanden, es sei denn, sie werden (warum auch immer) nicht mehr bereitgestellt. Welche Möglichkeiten habe ich, die Exception genauer zu untersuchen? Muss ich die Connection freigeben? Wenn ja, wann und wie? (Bisher habe ich sie offen gelassen, weil sie in der while-Schleife in jedem Durchgang für einen weiteren SELECT-Befehl benötigt wird.)Fehlermeldung hat geschrieben:BASIC-Laufzeitfehler.
com.sun.star.uno.RuntimeException
Message: .
Ich habe viel versucht, auch den Parameter klasse (der als String deklariert ist, der einem Integer entspricht) in Hochkommata oder chr(34) eingebunden - keine Änderung.
Hilfe! Jürgen