Hallo Dieter,
anbei der code des Formulars.
Habe den code des Beispiel: einfache Datenfilterung übernommen.
den ersten Fehler hat das Programm angezeigt bei:
.LockUpdate = True (Fehler ist nicht optional)
habe ich geändert in
.LockUpdate True
dann hats funktioniert.
Jetzt der Code:Option Explicit
Public oRs As New ADODB.recordset
Private Sub cmdBack_Click()
frmAdresse.Show
Unload Me
Set frmfiltGrid = Nothing
End Sub
Private Sub Form_Load()
Dim sSQL As String
Dim oRs As New ADODB.recordset
Dim dummy As Integer
Dim nTime As Single
' Datenbank öffnen
nTime = Timer
If dbOpenMySQL("Datenbank") Then
Debug.Print "OpenDB: ", Timer - nTime
nTime = Timer
sSQL = "select `Abr Monat`, `Abr Jahr`, `Abr Dat`, `Anleger Name`, `Anleger" & _
"Vorname`, `Depot-Nr`, `Handelsdatum`, `AS EZW`, `Provision ZW`," & _
"`Fondscode`, `Fonds`, `Kurs` from `export ap`"
oRs.CursorLocation = adUseClient
oRs.Open sSQL, oConn, adOpenStatic, adLockOptimistic
Debug.Print "OpenRecordset: ", Timer - nTime
nTime = Timer
With Grid1
.LockUpdate True
' Filterzeile oberhalb der Spaltenköpfe anzeigen
.FilterAlign = FILTER_ALIGN_TOP
.FilterForeColorDisabled = vbGrayText
.FilterVisible = True
.AllowFilterEdit = True
.FilterMoveTAB = False
' Icon-Liste erstellen
.Icons.Add LoadPicture(App.Path & "\icons\filter.ico")
' Recordset zuweisen
Set .recordset = oRs
.LockUpdate False
.Refresh
End With
End If
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'Wie wurde das Formular geschlossen
If UnloadMode <> vbFormCode Then
MsgBox "Über die Schaltfläche zurück schließen Sie das Fenster"
Cancel = True
'Das Formular beleibt offen
End If
End Sub
Private Sub Grid1_FilterButtonClick(ByVal nCol As Long, _
sText As String, bCancel As Boolean)
sieh Beispiel
End Sub Das Formular wird angezeigt, die Daten sind im Grid.
Wenn ich in die Filterzeile anklicke, dann wird das Diskettensymbol angezeigt. wenn ich etwas eingebe und dann auf die Diskette klicke, dann kommt "Fehler beim Kompilieren, Methode oder Mitgliedsdaten nicht gefunden.Private Sub Grid1_FilterButtonClick(ByVal nCol As Long, _
sText As String, bCancel As Boolean)
' Filter übernehmen (Recordset neu erstellen)
Dim i As Long
Dim sOp As String
Dim sValue As String
Dim bText As Boolean
With Grid1.Columns(nCol)
Select Case .Columns(i).DataType
Case dtText, dtMemo, dtHyperlink
bText = True
Case Else
bText = False
End Select wobei ".Columns(i)" markiert ist.
Danke und Gruss
Günther |