PDA

Vollständige Version anzeigen : Standartsuche


zowo
02.10.2002, 10:37
Hallo zusammen,
ich habe ein Frage zur Suchfunktion von Access.
Kann die Voreinstellung der Access-Suchfunktion geändert werden und zwar von "Ganzes Feld" in "Teil des Feldinhaltes" und ausserdem das Häckchen in "Aktuelles Feld" herausgenommen werden, so dass man dieses nicht jedesmal manuell neu ändern muss. ??

heißen Dank
zowo

Thom75
02.10.2002, 12:40
Hallo

Soviel wie ich weiß nicht in deinem fall mußt du die Suchfunktion woll ausprogrammieren da kannst du sagen wie die suche abgehen soll

Thom

SteffenF
02.10.2002, 13:42
Hallo!
Ich hatte auch das Problem, aber ich habe es mit etwas "Fummelarbeit" hinbekommen.
Die Lösung ist allesdings nicht ganz sauber, aber sie Funktioniert!

Hier ist die Funktion für den Knopf der Datensatzsuche: (sie bleibt eigentlich unverändert)

Private Sub Datensatz_suchen_Click()
On Error GoTo Err_Datensatz_suchen_Click
Screen.PreviousControl.SetFocus
DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
Exit_Datensatz_suchen_Click:
Exit Sub
Err_Datensatz_suchen_Click:
MsgBox Err.Description
Resume Exit_Datensatz_suchen_Click
End Sub

Nun kommt der Trick der ganzen Sache; beim Ereignis "Bei Fokusverlust", des Such-Buttons habe ich ein Makro eingebunden, Namens "Suche"

Die Aktion des Makros: "SuchenDatensatz"
Dann müsstest du noch die von dir gewünschten Voreinstellungen für die Suche auswählen. (Aktionsargumente)
Im SuchenNach-Feld solltest du ein Leerzeichen eingeben, falls du keine Voreinstellung für dieses Feld wünscht.

Die Logik die dahinter steck ist die, dass sobald du auf den Knopf der Suche drückst, sich das Standart-SuchFormular öffnet und sofort danach das Ereignis "Bei Fokusverlust" auslöst und das Suchformular wird mit den Einstellungen belegt, die im Makro voreingestellt wurden.

Ein kleines Problem bei der Sache ist, dass ein Fehler auftritt, wenn das "Bei Fokusverlust" des Such-Buttons auftritt, aber das Suchformular nicht geöffnet ist. Diesen Fehler sollte man unterdrücken.
Ich hae es wie folgt gelöst:

Private Sub Form_Error(DataErr As Integer, Response As Integer)
Response = acDataErrContinue
End Sub

Falls du da noch eine bessere Lösung findest, würde ich mich über eine Antwort freuen.
Natürlich stehe ich auch für Nachfragen zur Verfügung.

Mit freundlichem Gruss
SteffenF