Zum Inhalt springen

Suchen nach Datensätzen über Formular


user103109

Empfohlene Beiträge

Hallo,

ich habe eine Adresstabelle u.a. mit folgenden Feldern:

Vorname, Nachname, Firma

Über ein Formular soll der Benutzer nach Datensätzen in der entsprechden Tabelle suchen können. Dazu soll er ein beliebiges Textfeld ausfüllen. Nach Klick auf einen Button "Suchen" soll dann die Tabelle durchsucht werden und das Ergebnis angezeigt werden.

Was muss man dazu als "Ereignis" hinter den Such-Button legen ? Wie löst man das am besten ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich gehe mal von Access aus... ich habe das in einer alten Datenbank mal so gelöst (ein Glück das ich die noch habe...)

Function DatenSuche() As Variant

' Suchfunktion

' ============

' Aus dem Suchformular wird der Suchtext und die Suchoptionen ausgelesen.

' Je nach gewählter Suchoption wird der SQL SELECT aufgebaut.

' Die Tabelle suche_temp (temporäre Tabelle für Suche) wird zuerst geleert

' (DELETE FROM) und danach durch den passenden SQL SELECT wieder mit Daten

' gefüllt.

' Zum Abschluss wird diese Tabelle geöffnet und dem User angezeigt.

' Variablen

Dim rec

Dim db As Database

Dim sql As String

Dim suchtext As String

' Verweis auf aktuelle Datenbank

Set db = CurrentDb

' Suchtext aus Formular

suchtext = Forms!Suche!suchtext

' Fehlerabfang

If Trim(suchtext) = "" Then

MsgBox ("Fehler:" & Chr(13) & "Kein Suchtext eingegeben")

Exit Function

End If

If (Forms!Suche!chk_datnam = 0) And (Forms!Suche!chk_beschr = 0) Then

MsgBox ("Fehler:" & Chr(13) & "Keine Suchoptionen angegeben")

Exit Function

End If

' Suchoptionen

If (Forms!Suche!chk_datnam <> 0) And (Forms!Suche!chk_beschr <> 0) Then

sql = "INSERT INTO suche_temp SELECT * FROM vorlagen WHERE dateiname LIKE " & _

"'*" & suchtext & "*' OR beschreibung LIKE '" & suchtext & "'"

ElseIf (Forms!Suche!chk_datnam <> 0) Then

sql = "INSERT INTO suche_temp SELECT * FROM vorlagen WHERE dateiname LIKE '*" & suchtext & "*'"

ElseIf (Forms!Suche!chk_beschr <> 0) Then

sql = "INSERT INTO suche_temp SELECT * FROM vorlagen WHERE beschreibung LIKE '*" & suchtext & "*'"

End If

db.Execute ("DELETE FROM suche_temp") ' Tabelle leeren

db.Execute sql ' Tabelle neu füllen

' Ergebniss anzeigen

DoCmd.OpenTable ("suche_temp")

End Function

Das ganze in ein VB-Modul in Access schreiben und als Ereignis für den Suchen-Button "AusführenCode()" und dann den Funktionsnamen.

suche_temp = Temp. Tabelle für Ergebnisse

Forms!Suche = Formular mit den Suchfeldern

chk_datnam & chk_beschr = Checkboxen für Suchoptionen

suchtext = Textfeld im Formular der den Suchstring enthält

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für deinen Tip. Das ist ja richtig kompliziert. :eek:

Habe noch ein paar Fragen:

Wofür stehen die Felder "dateiname", "beschreibung", "vorlagen" in den Select-Anweisungen ?

Entspricht das bei mir den Feldern Vorname, Nachname und Firma ?

Sorry für die Fragen, aber von VBA habe ich 0 Ahnung....:OD

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi, user103109!

Du kannst auch ohne VBA folgendes ausprobieren:

In deiner (Ausgabe-)Abfrage schreibst Du in die Kriterienzeile folgendes:

=forms!<DeinFormularname>!<DeinFormularfeld>

(Spitze Klammern nicht mit eingeben und die Texte (Dein...) durch Deine Bezeichnungen ersetzen!)

Diese Abfrage kannst Du ja als Datenherkunft für ein Formular hinterlegen, welches auf Knopfdruck geöfnet wird.

Ein Vorteil: Du läßt Dir die Originaldaten anzeigen (und keine Kopie) und kannst somit auch gleich Änderungen vornehmen (lassen).

[Edit]

In Deinem Such-Formular erstellt Du dann die Schlatfläche am besten mit dem Assistenten: Zauberstab hell (eingedrückt / aktiviert). Dan kannst Du ganz einfach in der Kategorie "Formularoperationen" und anschließend aus den Aktionen "Formular öffnen" auswählen. Der Rest ist ganz einfach!!

[Edit Ende]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ich habe es jetzt über Abfragen gelöst. Habe verschiedene Buttons angelegt (Suche nach Vorname, nach Nachname etc). Daraufhin öffnet sich ein PopUp und man kann eine Eingabe tätigen. Das Ergebnis wird in einem separaten Formular angezeigt. Als "Datenherkunft" habe ich dann die Abfragen genommen.

Ein kleines Prob. habe ich noch: Wenn der Nutzer im Popup Fenster auf "Abbrechen" klickt, kommt eine Fehlermeldung: "Die Aktion OpenForm wurde abgebrochen". So sieht das Ereignis aus, was das Formular mit dem PopUp öffnet:

Private Sub Befehl35_Click()

DoCmd.OpenForm "Nachname"

Wie fange ich Fehlermeldung ab ? Wenn er auf "Abbrechen" klickt, soll er das Formular Nachname schließen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würd es ad hoc in etwa so machen:

Private Sub Befehl0_Click()

Dim EingabeString As Variant

DoCmd.OpenForm "Nachname"

EingabeString = InputBox("Eingabe machen", Eingabe)

If EingabeString = vbCancel Then

GoTo ende

Else

-->dein Code um EingabeString zu verarbeiten

MsgBox "Es wurde " & EingabeString & " eingegeben", vbOKOnly

End If

ende:

MsgBox "Aktion abgebrochen", vbOKOnly

DoCmd.CloseForm "Naname"

End Sub

Das ist natürlich die raw&dirty Methode, da der Datentyp Variant nich gerade optimal ist, aber es sollte funktionieren.

Grüsse,

Thomas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...