Hallo.
Die ersten beiden Spalten in meinem Grid sind Datum und Uhrzeit.
Ich sortiere das Grid absteigend nach diesen beiden Spalten.
Nachdem ich nun z.B. das Feld Uhrzeit editiert habe und zum nächsten Feld springe, sortiert er die Zeile sofort ein und bringt dabei die ganze Gridansicht durcheinander. Ich habe auf einmal (nur in der aktuellen Ansicht) doppelte Einträge.
Wenn ich nun nach Beenden des Editiervorganges die Zeilen durch Drücken auf die Spaltenköpfe manuell sortiere, ist alles wieder in Ordnung.
Wäre schön, wenn man das "Durcheinanderbringen" unterbinden könnte. Das Einsortieren während der Editierphase ist ja eigentlich ok. Hier der komplette Code:Option Explicit
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim db As String
Private Sub dg_wette_BeforeUpdate(ByVal nRow As Long, ByVal nCol As Long, sText _
As String, Cancel As Integer)
If nCol = 8 Or nCol = 9 Or nCol = 10 Then
sText = Format(Val(sText), "######.00")
End If
End Sub
Private Sub dg_wette_EditKeyPress(KeyAscii As Integer)
If dg_wette.Col = 8 Or dg_wette.Col = 9 Or dg_wette.Col = 10 Then
Select Case KeyAscii
Case 48 To 57, vbKeyBack, vbKeyTab, 13
Case 44, 46, 58, 59
KeyAscii = 46
Case Else
KeyAscii = 0
End Select
End If
End Sub
Private Sub dg_wette_KeyPress(KeyAscii As Integer)
If KeyAscii = 43 Then ' Plus-Zeichen
dg_wette.AddNew
End If
End Sub
Private Sub Form_Load()
db = App.Path & "\BetAndWin.mdb"
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Data Source") = db
.Open
End With
With rs
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.ActiveConnection = cn
.Open "SELECT * FROM Wette ORDER BY Datum DESC, Uhrzeit DESC"
End With
With dg_wette
.LockUpdate True
.Clear True
.ColumnAdd "datum", "Datum", 1000
.ColumnAdd "uhrzeit", "Uhrzeit", 1000
.ColumnAdd "wettart", "Wettart", 800
.ColumnAdd "sportart", "Sportart", 1500
.ColumnAdd "veranstaltung", "Veranstaltung", 4450
.ColumnAdd "tipp", "Tipp", 1200
.ColumnAdd "resultat", "Resultat", 1200
.ColumnAdd "einsatz", "Einsatz", 800
.ColumnAdd "quote", "Quote", 800
.ColumnAdd "gewinn", "Gewinn", 800
Set .Recordset = rs
.Columns("datum").InputType = INPUT_DATE
.Columns("datum").MaxInputLength = 10
.Columns("uhrzeit").InputType = INPUT_TIME
.Columns("uhrzeit").MaxInputLength = 5
.DoSort "1 DESC, 2 DESC"
.LockUpdate False
.Refresh
End With
End Sub Gru? aus Oberhausen, Salvatore
---
Man braucht nur mit Liebe einer Sache nachzugeben,
so gesellt sich das Gl?ck hinzu. (Johannes Trojan) |