Hallo Zusammen,
ich habe folgendes Problem. Ich möchte Daten aus zwei Tabellen einer SQL-Datenbank auslesen und in ein neues Dokument schreiben.
Es sollen zu einem Auftrag alle Positionen ausgelesen werden.
Abhängig von der Artikelnummer in der jeweiligen Position werden Daten aus einer zweiten Tabelle benötigt.
Das Problem ist nun, dass das auslesen der zweiten DB immer nur bei der letzten eingelesenen Position funktioniert. Wenn ich mir das im Debugger ansehe, funktioniert anscheinend der execute-Befehl immer nur beim letzten Durchgang der Loop. Ich sehe einfach nicht wo das Problem ist. Hier der Skript, vielleich kann einer von euch was erkennen.
Sub Click(Source As Button)
Dim con As New ODBCConnection
Dim qry As New ODBCQuery
Dim qry2 As New ODBCQuery
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim res As New ODBCResultSet
Dim res2 As New ODBCResultSet
Dim db As NotesDatabase
Dim session As New NotesSession
Dim doc As NotesDocument
Dim pos As Long
Dim art As String
Dim an As Long
Dim z
z=0
Set db = session.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Call doc.Save(True, True)
an = uidoc.FieldGetText("fdAuftragsNr")
con.ConnectTo("BPW_Datamarts")
Set qry.Connection = con
Set qry2.Connection = con
qry.SQL = "select * from [SH Verkauf FP mit Attributen] where [Auftrags-Nr.] = '" & an & "'"
Set res.Query = qry
res.Execute
r% = res.FirstRow
Do While r% = True
Dim adoc As New NotesDocument(db)
Call adoc.MakeResponse( doc )
adoc.form = "frmReklaDetail"
Call adoc.Save(True, True)
adoc.fdAuftragsNr = an
adoc.fdpos = res.GetValue("POS")
art = res.GetValue("Artikel-Nr.")
adoc.fdartikelnr = art
qry2.SQL = "select * from DIM_SH_ARTIKEL where [Artikel-Nr.] = '" + art + "'"
Set res2.Query = qry2
res2.Execute
res2.FirstRow
adoc.fdartikelbez = res2.GetValue("Bezeichnung")
adoc.fdags = res2.GetValue("Artikelgruppe") & " " & res2.GetValue("Artikelgruppenbezeichnung")
adoc.fdobf = res.GetValue("OBF")
adoc.fdfarbe = res.GetValue("Farbe")
adoc.fdleimung = res.GetValue("Leimung")
adoc.fdflg = res.GetValue("gr/m²")
adoc.fdlaenge = res.GetValue("Länge")
adoc.fdbreite = res.GetValue("Breite")
adoc.fdMEHME = res.GetValue("ME")
adoc.fdBestMengeHME = res.GetValue("Menge in ME")
z = z+1
Call adoc.Save(True, True)
r% = res.NextRow
Loop
con.Disconnect
Messagebox("Es wurden " + z + " Positionen erstellt.")
End Sub