Hallo Leute,
ich habe ein Access Projekt begonnen, wo ich jetzt ein wenig auf dem Schlauch stehe und eure Hilfe benötige :)
Meine Datenbank besteht aus 3 Tabellen
tblThemen:
ID, ThemenID(Primärschlüssel), txtThemen, StatusID, datAnlagedatum, datÄnderungsdatum, txtVerantwortlicher, ThemenzuordnungID, lnkLink, txtFreitext
tblStatus
StatusID(Primärschlüssel), txtStatus
tblThemenzuordnung
ThemenzuordnungID, txtThemenzuordnung
Zur Suche in dem Formular habe ich ein Endlosformular engelegt, in welchem ich über Textfelder und Kombinationsfelder nach Einträgen filtern möchte.
Das funktioniert auch mit der Textfeldern super, nur bei den Kombinationsfeldern gibts Probleme.
Hier der Code mit dem ich begonnen habe:
Private Sub txtSchnellsuche_Status_Change()
Dim strFilter As String
Dim intStart As Integer
intStart = Me!txtSchnellsuche_Status.SelStart
If Not Len(Me!txtSchnellsuche_Status.Text) = 0 Then
strFilter = "Me.StatusID.Text = '" & Me!txtSchnellsuche_Status.Text & "'"
Me.Filter = strFilter
Me.FilterOn = True
Me!txtSchnellsuche_Status.SelStart = intStart
Else
Me.Filter = ""
Me.FilterOn = False
Me!txtSchnellsuche_Status.SetFocus
End If
End Sub
Ich habe auch schon versucht über Vlaue und Column die entsprechende Filterung hinzubekommen...leider ohne erfolg.
Die beiden Kombinationsfelder sind identisch aufgebaut, jeweils 2 Spaten von denen die erste auf Breite 0 gesetzt wurde.
Vielen Dank schonmal im Voraus :)
(//)
Gruß
[Anhang gelöscht durch Administrator]
Hallo,
mit Kombis sucht man "anders":
Auswahl eines Wertes aus der Kombiliste (Dropdownliste) (evtl. auch durch Vorselektion durch Eingabe der ersten Zeichen im Kombifeld) und Ausführen der Filterung im Ereignis "Nach Aktualisierung" des Kombis.
Danke für die schnelle Antwort!
So hätte ich mir das auch gedacht...hab jetzt die Filterung in das Ereignis "Nach Aktualisierung" verschoben und mit die Werte für "Me.StatusID.Text" bzw. "Me!txtSchnellsuche_Status.Text" über eine msgBox ausgeben lassen, hier bekomme ich auch die gewünschten Werte ausgegeben...nur mit der Filterung passt es dann nicht...
oder seh ich gerade den Wald vor lauter Bäumen nicht?!
Hallo,
ich sehe gerade nicht, wie der Code jetzt lautet..
Das Change-Ereignis für die Filterung über das Textfeld ist an sich in Ordnung. Bei den Kombis sollte es das AfterUpdate-Ereignis sein. Dabei kann der aktuell ausgewählte Wert mit :
Me!Kombifeld1.Column(0) für die erste(!) Spalte ausgelesen werden und als Kriterium zur Filterung herangezogen werden. Im Normalfall steht dort die ID eines Datensatzes drin.
Hi
zur zeit sieht der Code folgendermaßen aus
Private Sub txtSchnellsuche_Status_AfterUpdate()
Dim strFilter As String
Dim intStart As Integer
intStart = Me!txtSchnellsuche_Status.SelStart
If Not Len(Me!txtSchnellsuche_Status.Text) = 0 Then
strFilter = "Me.StatusID.Column(0) = '" & Me!txtSchnellsuche_Status.Column(0) & "'"
Me.Filter = strFilter
Me.FilterOn = True
Me!txtSchnellsuche_Status.SelStart = intStart
Else
Me.Filter = ""
Me.FilterOn = False
Me!txtSchnellsuche_Status.SetFocus
End If
End Sub
Es kommt allerdings der Fehler, dass "Der Suchschlüssel wurde in keinem Datensatz gefunden"
Da die Kombinationsfelder gleich aufgebaut sind, sind auch in der ersten Spalte die Datensätze identisch...
mfg
Hallo,
das ist Nonsense:
strFilter = "Me.StatusID.Column(0) = '" & Me!txtSchnellsuche_Status.Column(0) & "'"
wenn , dann zunächst im Kombifeld ("KombiStatusID") einen Wert auswählen, dann im Such-Textfeld ("txtSchnellsuche") einige Zeichen eingeben und das Feld verlassen:
.
.
.
strFilter = "StatusId = " & Me!KombiStatusID.Column(0) & " and txtThemen Like '*" & Me!txtSchnellsuche & "*'"
<edit>
funktioniert jetzt einwandfrei mit folgendem code
Private Sub kmbSchnellsuche_Status_AfterUpdate()
Dim strFilter As String
Dim intStart As Integer
intStart = Me!kmbSchnellsuche_Status.SelStart
If Not Len(Me!kmbSchnellsuche_Status.Text) = 0 Then
strFilter = "StatusID = " & Me!kmbSchnellsuche_Status.Column(0) & ""
Me.Filter = strFilter
Me.FilterOn = True
Me!kmbSchnellsuche_Status.SelStart = intStart
Else
Me.Filter = ""
Me.FilterOn = False
Me!kbmSchnellsuche_Status.SetFocus
End If
End Sub
Vielen Dank