ich komme nicht weiter bei einem Makro, ein Variablenwert wird nicht in die gewünschte Tabelle eingetragen. Ich habe meine Kenntnisse ausgeschöpft und bin jetzt ratlos.
Betroffen ist das Formular "Ein_TeilnZuKurs", dort erfolgt die Zuordnung von Teilnehmern zu einem Kurs.
Die betreffende Variable im Makro heißt "sK_ID", sie soll eine Kurs-ID in die Tabelle "KursBelegung" eintragen. Macht sie aber nicht. Verschiedene Möglichkeiten bei der Definition (String, Integer) sind ausprobiert und führen nicht zum Erfolg.
In der While-Schleife soll der Eintrag erfolgen, da habe ich auch verschiedene Variationen mit Hochkommata versucht, ohne Erfolg. Es kommt auch keine Fehlermeldung.
Mit xray habe ich den update-String ausgelesen und kopiert, füge ich ihn bei EXTRAS -SQL ein, funktioniert der Eintrag problemlos. Hier das Makro und eine verfremdete Beispiel-DB.
Code: Alles auswählen
' ausgewählte Teilnehmer in Tabelle "KursBelegung" eintragen
Sub Teilnehmer_eintragen
DIM oDocView as Object
DIM oDoc as Object
DIM oForm as Object
DIM oForm_Grid as Object
DIM oSubForm as Object
DIM oSubForm_Grid as Object
DIM oKursteilnehmerForm as Object
DIM oDatenquelle AS OBJECT
DIM oVerbindung AS OBJECT
DIM oStatement AS OBJECT
Dim sK_ID As Variant ' war auch schon Integer und String, ändert nichts
Dim sT_ID As Variant
Dim sSQL_anzNamen As String
Dim sSQL_insT_ID As String
oDoc = ThisComponent
oForm = oDoc.DrawPage.Forms.getByName("MainForm")
oForm_Grid = oForm.getByName("MainForm_Grid")
oSubForm = oForm.getByName("SubForm")
oSubForm_Grid = oSubForm.getByName("SubForm_Grid")
sK_ID = oForm_Grid.getByName("Kurs_ID").currentValue
'xray sK_ID
' Datenbankverbindung erstellen
oDatenquelle = ThisComponent.Parent.DataSource
oVerbindung = oDatenquelle.GetConnection("","")
oStatement = oVerbindung.createStatement
' SQL-Abfrage mit Teilnehmer-Nummern zusammenstellen
sSQL_anzNamen = "SELECT (""T_ID"") FROM ""Teilnehmer"" WHERE ""Auswahl"" = " + TRUE
' Abfrage ausführen
oResultSet = oStatement.executeQuery(sSQL_anzNamen)
While oResultSet.next()
'T_ID aus oResultSet holen
sT_ID = oResultSet.getString(1)
'xray sT_ID
' "T_ID" in Tabelle "KursBelegung" einfügen (funktioniert, wird eingetragen)
sSQL_insT_ID ="INSERT INTO ""KursBelegung"" (""T_ID"") " +chr(13)+_
"VALUES ('" + sT_ID + "')"
' "K_ID" in Tabelle "KursBelegung" einfügen (funktioniert nicht)
' die Variablen waren auch schon beide in Hochkommata, beide ohne, nutzte auch nichts
SQL_updK_ID = "UPDATE ""KursBelegung"" SET ""K_ID"" = " + sK_ID + " WHERE ""T_ID"" = '" + sT_ID + "'"
SQL_Anweisung = oVerbindung.createStatement()
' Tabelle KursBelegung mit T_ID füllen
SQL_Anweisung.executeUpdate(sSQL_insT_ID)
'xray SQL_updK_ID '(wenn ich den von xray hier gezeigten String kopiere und
' in "Extras - SQL" ausführen lasse, funktioniert es)
' Tabelle KursBelegung updaten mit K_ID
SQL_Anweisung.executeUpdate(sSQL_updK_ID)
Wend
End Sub
Schönen Abend
acco