Guten Tag allerseits,
ich habe eine DB-Anwendung (Access und ADO. Connection und alles weitere wurde per Quellcode erstellt.
Nun habe ich zur Gesamtübersicht meiner Daten ein TrueDBGrid von ComponentOne benutzt. Dort gibt es die Möglichkeit, eine "FilterBar" zu aktivieren, damit man eine Suchzeile in dem Grid hat.
Zu dieser Suchzeile gibt es diese Funktion:
Private Function GetFilter() As String
On Local Error GoTo err_getFilter
Dim tmp As String
Dim n As Integer
For Each col In cols
If Trim(col.FilterText) <> "" Then
n = n + 1
If n > 1 Then
tmp = tmp & " AND "
End If
'Einer meiner Versuche...
'Select Case col.ColIndex
' Case 6:
' tmp = tmp & col.DataField & " LIKE " & col.FilterText & "*"
' Case Else
' tmp = tmp & col.DataField & " LIKE '" & col.FilterText & _
"*'"
'End Select
tmp = tmp & col.DataField & " LIKE '" & col.FilterText & "*'"
End If
Next col
' Nur zum Test:
'Debug.Print tmp
GetFilter = tmp
' -----------------Procedure-Exit---------------
Exit_getFilter:
' Prozedur verlassen
Exit Function
' -----------------Err-Handler---------------
err_getFilter:
MsgBox Err.Description, vbCritical, "Modul:frmObjekte, Proc:GetFilter"
GetFilter = ""
Resume Exit_getFilter
End Function und dieses Ereignis für das Grid:
Private Sub tgridObjekte_FilterChange()
On Local Error GoTo err_tgridObjekte_FilterChange
With tgridObjekte
Set cols = .Columns
Dim c As Integer
c = .col
.HoldFields
rsObjects.Filter = GetFilter()
.col = c
.EditActive = True
End With
' -----------------Procedure-Exit---------------
Exit_tgridObjekte_FilterChange:
' Prozedur verlassen
Exit Sub
' -----------------Err-Handler---------------
err_tgridObjekte_FilterChange:
Select Case Err.Number
Case -2147217825:
Err.Clear
MsgBox "Suche funktioniert in diesem Abschnitt noch nicht!", _
vbInformation, C_APPNAME
Case -2147217900:
Err.Clear
MsgBox "Suche funktioniert in diesem Abschnitt noch nicht!", _
vbInformation, C_APPNAME
Case 3704:
Err.Clear
MsgBox "Suche funktioniert in diesem Abschnitt noch nicht!", _
vbInformation, C_APPNAME
'Case 3001:
' Err.Clear
' MsgBox "Suche funktioniert in diesem Abschnitt noch nicht!",
' vbInformation, C_APPNAME
Case Else
MsgBox Err.Description & Err.Number, vbCritical, "Modul:frmObjekte," & _
"Proc:tgridObjekte_FilterChange"
Resume Exit_tgridObjekte_FilterChange
End Select
End Sub (Die "err.Clear" habe ich gemacht, damit ICH dem User wenigstens eine von mir erstellte Fehlermeldung geben kann.)
Nun das Problem:
Wenn ich in eine numerische Spalte (bei mir die 6., siehe SelectCase Col.Colindex), also in der DB ein Zahlenfeld, etwas eintrage, dann kommt folgende Fehlermeldung:
Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar
Ich habe nun Probleme, die Suchfunktion so anzupassen, dass auch Zahlen möglich sind.
Kennt jemand diese Komponente und dieses Problem oder weiß da jemand Rat?
Vielen Dank für Eure Hilfe.
Schöne Grüße
Klaas |