Hallo Leute
Habe einen Access DB via ADO an das sevData Grid V2 gebunden.
Wenn ich Felder Manuell bearbeite, werden Änderung übernommen.
Auch das hinzufügen und löschen von Datensätzen per Code funktioniert einwandfrei.
Nur das Bearbeiten per Code will nicht so recht. Ich kann zwar alles ändern und mich in der Tabelle bewegen. Nach einen Refresh oder Neustart der Applikation sind jedoch alle Änderungen welche per Code gemacht wurden weg. Neuangelegtes und Händisch geändertes bleibt erhalten. Ich ändere die Datensätze mit der TEXT Eigenschaft. Die Änderungen werden im Grid normal angezeigt. Ich bekomme auch keinerlei Fehlermeldung. Was mache ich da Falsch ?
Danke für jede Hilfe.
Sub grid_erzeugen()
Dim sSQL As String
Dim oRs As New ADODB.Recordset
sSQL = "SELECT * FROM Benutzer"
oRs.CursorLocation = adUseClient
oRs.Open sSQL, oConn, adOpenStatic, adLockOptimistic
With Grid
.LockUpdate True
'.CreateClone = True
.Clear True
.DataMode = Mode_Recordset
Set .Recordset = oRs
.ColumnHeaderBackColor = RGB(216, 228, 248)
.ScrollBtnBackColor = RGB(216, 228, 248)
.ScrollBtnBackColorDown = .ScrollBtnBackColor
.ScrollBtnBorderColor = &HB99D7F
.CaptionBackColorFrom = &HFFC0C0
.CaptionBackColorTo = &HFF8080
.CaptionForeColor = &HFFFF&
nHighlightBackColor = &HC0E0FF
nHighlightForeColor = vbBlack
.CheckBoxStyle = CHECKBOX_XP
.Columns(1).Width = 950
.Columns(2).Width = 1500
.Columns(3).Width = 1000
.Columns(4).Width = 2000
.Columns(5).Width = 1000
.AutoSort = True
.DoSort "Nummer"
.AllowMultiSelect = False
.AllowEdit = False
.AutoUpdate = False
.AllowDelete = False
.AutoUpdate = True
.AllowColumnSizing = True
.AllowColumnReorder = True
.LockUpdate False
.Refresh
.Row = 1
End With
End Sub Sub benutzer_bearbeiten()
bearbeitungsmous = True
Zeile = Grid.Row
AE_Loginname = Grid.Text(Zeile, 2)
AE_Kennwort = Grid.Text(Zeile, 3)
AE_Benutzername = Grid.Text(Zeile, 4)
AE_Administratorrechte = Grid.Text(Zeile, 5)
Bearbeiten.Show 1 'Hier verändere ich die Variablen AE_Kennwort usw..
Grid.Row = Zeile
Grid.Text(Zeile, 2) = AE_Loginname
Grid.Text(Zeile, 3) = AE_Kennwort
Grid.Text(Zeile, 4) = AE_Benutzername
Grid.Text(Zeile, 5) = AE_Administratorrechte
Grid.UpdateRow
Grid.Refresh
End Sub Public Function dbOpen(ByVal sDatabasePath As String) As Boolean
On Error GoTo ErrHandler
If oConn Is Nothing Then
Set oConn = New ADODB.Connection
With oConn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Data Source") = Datenbank
.Properties("Persist Security Info") = False
.Properties("Password") = dbPasswort
.Open
End With
End If
dbOpen = True
Exit Function
ErrHandler:
MsgBox "Es ist ein Fehler beim Öffnen der Datenbank aufgetreten." & vbCrLf & _
CStr(Err.Number) & " " & Err.Description
Debug.Print Err.Number
End Function |