Hi & danke für die Antwort.
Also in dem Fenster erscheinen dann 3 max. 5 Funktionen, also nix weltbewegendes.
Ich poste mal teile vom Source...
Hier der Importaufruf (von temp. Tabelle):
(dies ist schon der geänderte Auruf, also Funktion wird nach 100 Datensätzen beendet und dann wieder aufgerufen
NOMOREDATA:
'Temp-Tabelle testen und importieren
booImport = funImportManu(ifTestImport, ifPrint, ifAir, ProgressBar1, _
lblProgressBar, Me.strPrinter, booLaserPrinter, i, strShortFileName)
'Warum? wegen Speicherbelastung bei zu vielen Datensätzen
If returntoimport Then GoTo NOMOREDATA Hier der Anfang der eigentlichen Import-Funktion:
Dim rst As ADODB.Recordset
Dim strDatensaetzeWerdenImportiert
strDatensaetzeWerdenImportiert = funGetMsgTrans(" Datensätze werden" & _
"importiert!", 0, pubIntLanguage)
Set rst = objDataTier.RetrieveRS("SELECT * FROM " & conTmpImportTbl & "" & _
"WHERE Band_ID = " & pubBand & ";")
returntoimport = False
'Nur beim 1.File
If intFileNo = 0 Then objDataTier.Execute ("DELETE FROM " & _
conImportTblAir & ";")
y = funRecordCount(conTmpImportTbl & " WHERE Band_ID = " & pubBand)
progBar.Max = 100
progBar.Min = 0
progBar.Value = 0
Dim aVarBlank() As Variant
ReDim aVarBlank(1, X)
For z = 0 To X
aVarBlank(0, z) = rst.Fields(z).Name
Next z
...
... So, gleiche Funktion, nur ab etwas weiter unten, ab hier beginnt die Schleife:
(Schon mit neuer Änderung wenn i > 99 dann verlasse Funktion und rufe sie komplett neu auf.)
With rst
If Not .BOF Then .MoveFirst
Do While Not .eof
If i > 99 Then
returntoimport = True
GoTo LEAFFUNCTION
End If
If strLPtmp = "" Then
i = i + 1
End If
aVar = aVarBlank
For z = 0 To X
aVar(1, z) = .Fields(z).Value
Next z
Call funMappingStart(aVar, frmImport.cboCustomer.SubItem( _
frmImport.cboCustomer.ListIndex, 1), objImportSpec, _
frmImport.cboAirMappingName.SubItem( _
frmImport.cboMappingName.ListIndex, 2), True, , , True)
'Defaultwerte eintragen, wenn nix da is
Call funAddDefaults(aVar, objImportSpec)
...
...
...
hier folgen jetzt diverse Checkroutine (das is wirklich viel deshalb lass ich _
das mal weg)
...
...
...
If UCase(aVar(0, UBound(aVar, 2))) = "IMPORTERROR_FIELDS" Then
ReDim Preserve aVar(UBound(aVar, 1), UBound(aVar, 2) - 2)
End If
progBar.Value = i
If i Mod 10 = 0 Then
lblProgBar.Caption = i & "/" & CStr(y) & _
strDatensaetzeWerdenImportiert
DoEvents
End If
If i = 1 Then
ReDim Preserve aVar(UBound(aVar, 1), UBound(aVar, 2) + 1)
aVar(0, UBound(aVar, 2)) = "Band_ID"
End If
aVar(0, UBound(aVar, 2)) = "Band_ID"
aVar(1, UBound(aVar, 2)) = pubBand
If Len(Nz(aVar(1, iIMPORTEXPORTTYPEAIR), "")) = 1 Then
strImpExpType = aVar(1, iIMPORTEXPORTTYPEAIR)
Select Case UCase(strImpExpType)
Case "P": strImpExpType = "Permanent"
Case "R": strImpExpType = "Repair & Return"
Case "T": strImpExpType = "Temporary"
Case Else
strImpExpType = "Permanent"
End Select
aVar = funSetArrayValue( _
"IMPORTEXPORTTYPE", _
strImpExpType, _
aVar)
End If
.usw... Hier das Ende der Funktion:
Loop
End With
LEAFFUNCTION:
Call objDataTier.Execute("DELETE FROM tblPrint WHERE Band_ID = '" & pubBand _
& "'")
Set rst = Nothing
funImportManu = True
PROC_EXIT:
objErr.Pop
Exit Function
PROC_ERR:
objErr.HandleError
Resume PROC_EXIT |