[gelöst] Makro-Variable trägt Werte nicht in Tabelle ein
Verfasst: Do 6. Mär 2014, 21:09
Guten Abend liebe Helfende,
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.
Ich bin sehr dankbar, wenn mir jemand auf die Sprünge hilft.
Schönen Abend
acco
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