Möchte mehrere Datensätze aus einer Abfrage per Befehlsschaltfläche in ein am Bildschirm geöffneten Formular einfügen. Mit dem unten aufgeführten Code funktioniert das einfügen grundsätzlich, allerdings wird jeweils nur ein Datensatz eingefügt (der letzte), auch wenn in der Quellabfrage mehrere Datensätze selektiert wurden.
Ich nehme an, dass mir beim Einfügen eine Schlaufe fehlt, im Sinne von DO WHILE xxx.next .........loop (ähnlich wie im 1. Teil), komme aber im Moment nicht weiter und hoffe, dass mir hier jemand den entscheidenden Tipp geben kann, denn ich bin mir sicher, dass das irgendwie gehen muss.
Code: Alles auswählen
sub AutoFerien
dim oQuellTabelle As Object, oZielForm As Object, oFormTabelle As Object, oStatement As Object, oZielSubForm As Object, ctl1 As Object, ctl2 As Object, s As string, sSql As string, x As Long, y As Long
GlobalScope.BasicLibraries.LoadLibrary("XrayTool") '
oStatement = getCon().createStatement()
'1. Teil: Hier werden die Daten pro Spalte aus der Abfrage geholt (Dieser Teil funktioniert genau, wie ich möchte ********************************************************************************************************************************************
sSql = "SELECT ""fldVorgabeZeitartNr"", ""fldVorgabeVon"", ""fldVorgabeBis"", ""fldZeitArt"" FROM ""tblEinstellungen"", ""tblZeitArt"" WHERE " "tblEinstellungen"".""fldVorgabeZeitartNr"" = ""tblZeitArt"".""fldZeitArtNr"""
oErgSet = oStatement.executeQuery(sSql)
' xray oErgSet
If Not IsNull(oErgSet) Then
Do While oErgSet.Next()
Zeitart = oErgSet.getShort(1)
' xray Zeitart
VonZeit = oErgSet.getTime(2)
' xray VonZeit
BisZeit = oErgSet.getTime(3)
' xray BisZeit
loop
End If
' 2. Teil: Hier sollten die Daten aus dem 1. Teil ins das Formular (genau genommen ist es ein SubFormular) einfgefügt weden. Das Problem ist, dass jeweils nur der letzte Datensatz eingefügt wird, anstatt alle. Hier fehlt wohl noch eine Schlaufe, weiss aber nicht, wie ich diese korrekt erstelle.
' oZielForm = ThisComponent.DrawPage.Forms.GetByname("MainFormZeiterfassung")
oZielSubForm = oZielForm.GetByname("SubFormVonBis")
' xray oZielSubForm
oZielSubForm.moveToInsertRow
oZielSubForm.updateShort(4, Zeitart)
oZielSubForm.updateTime(2, VonZeit)
oZielSubForm.updateTime(3, BisZeit)
oZielSubForm.InsertRow
end sub
Gruss
paradigma