Hallo Dieter,
ich bekomme beim SevDataGrid immer mal wider nen Laufzeitfehler.
Ich konnte das ganze schon n bissl eingrenzen.
Daten werden ins Grid (Recordset Mode) geladen ...
sSql = "SELECT pr_as_id AS ID, as_nr, status, CAST(as_nr AS VARCHAR) + ', ' +" & _
"bez1 AS as_name, fortschritt, menge_soll, " & _
"menge_ist, menge_ausschuss, " & _
"'000:00:00' AS RuestSek, '00:00' AS RuestIst, " & _
"vorgabezeit, zeit_soll, zeit_ist " & _
"FROM projekt_as WHERE (((projekt_as.projektnr)=" & Val(Me.Label2( _
0).Caption) & ")) "
rs.Open sSql, connSDB, adOpenStatic, adLockOptimistic
With Me.sevAsGrid
.Clear True
'Bilder für die einzelnen AS Status hinzufügen
Set .Icons = Nothing
.Icons.Add LoadResImage("SERVER_RED", "BMP"), "STATE_NEW"
.Icons.Add LoadResImage("SERVER_YELLOW", "BMP"), "STATE_RUN"
.Icons.Add LoadResImage("SERVER_GREEN", "BMP"), "STATE_END"
.CheckBoxStyle = CHECKBOX_XP
.LockUpdate True
'Rüstzeit in Sekunden, wird im RowLoaded Event noch in ein gültiges
' Anzeigeformat gebracht
.Columns(9).Caption = "Rüstzeit"
.Columns(9).Width = 950
.Columns(9).Align = ALIGNMENT_RIGHT
.Columns(9).HeadAlign = ALIGNMENT_CENTER
.Columns(9).InputType = INPUT_USER
.Columns(9).InputMask = "###:##:##"
.Columns(9).FooterAlign = ALIGNMENT_RIGHT
.Columns(9).FooterBold = True
'Rüstzeit-Ist, in der DB Abfrage nur ein Dummy wird im RowLoaded
' ausgerechnet und angezeigt
.Columns(10).Caption = "Rüstzeit-Ist"
.Columns(10).Width = 950
.Columns(10).Align = ALIGNMENT_RIGHT
.Columns(10).HeadAlign = ALIGNMENT_CENTER
.Columns(10).FooterAlign = ALIGNMENT_RIGHT
.Columns(10).FooterBold = True
.CaptionVisible = False
.ColumnHeaderHeight = 19
.RowHeight = 18
.RowHeight = 18
.AllowEdit = True
.FooterBackColor = .BackColorEven
.FooterVisible = True
.ScrollBars = SB_AUTO
.LockUpdate False
.Refresh
Call FillAsGridFoot
End With
rs.Close Der Laufzeitfehler scheint im RowLoaded Event aufzutreten - hier mal der Code auf den ich das ganze eingrenzen konnte.
Private Sub sevAsGrid_RowLoaded(ByVal nRow As Long, Item As _
sevDataGrid2.ListItem)
Dim sHlp As String
Dim NewIdx As Integer
Dim nHlp As Long
Dim sSql As String
Dim rs As New ADODB.Recordset
Dim nID As Long
With Item
'Rüstzeitvorgabe, wird als Dummy = '000:00:00' übergeben - der Wert wird
' als Sekunden aus der DB gelesen, umgerechnet und dann angezeigt
nID = Val(.CellText("ID"))
nHlp = GetPrAsRuestZeitSek(nID) 'Funktion ermittelt einen Zeitwert in
' Sekunden
sHlp = ErmZeit(0, 0, nHlp, True) 'Sekunden in einen Zeitstring
' umgewandeln "00:00:00"
.CellText("RuestSek") = sHlp
'Die gesamte bereits gebuchte Rüstzeit auf dem Projekt ausgeben
nHlp = Get_ProjektGesAsRuesZeitSek(Val(Me.Label2(0)), getASID(Val(Me.Label2( _
0)), Val(.CellText("as_nr"))))
sHlp = ErmZeit(0, 0, nHlp, False)
.CellText("RuestIst") = sHlp
End With
End Sub Hier die Meldungen:
Nummer 1: http://img834.imageshack.us/img834/9071/errorsevgrid.jpg
und darauf diese hier: http://img507.imageshack.us/img507/816/errorsevgrid2.jpg
Das interessante ist eigentlich das es meistens ein paar mal funktioniert bevor der Fehler auftritt, kann also das Formular auf dem das Grid ist ein paar mal auf und zumachen und mit unterschiedlichen Daten füttern ... bis dann der Fehler kommt
Wenn ich den aus RowLoaded geposteten Code auskommentiere scheints zu funktionieren.
mfg
Sebastian
Beitrag wurde zuletzt am 26.10.11 um 14:30:58 editiert. |