collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 51
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13929
  • stats Beiträge insgesamt: 66081
  • stats Themen insgesamt: 8913
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Suche in mehreren Spalten des Kombinationsfeldes  (Gelesen 606 mal)

Offline Danielz

  • Newbie
  • Beiträge: 3
Suche in mehreren Spalten des Kombinationsfeldes
« am: Februar 09, 2018, 13:47:20 »
Hallo,
ich hab ein Formular mit einem Unterformular. Im Hauptformular gebe ich persönliche Kontaktdaten einer Person ein. Im Ufo teile ich dieser Person dann über ein Kombinationsfeld eine Firma zu. Dieses Kombinationsfeld hat mehrere Spalten (Name der Firma, Abkürzung, Zusatz, Straße, Ort, etc.). Jetzt würde ich gerne bei einer Eingabe im Kombinationsfeld alle Spalten durchsuchen können. Wenn mir beispielsweise als Anwender nur die Abkürzung der Firma/Organisation einfällt, z.B. "BMBF" dann soll mir trotzdem die richtige Zeile angezeigt werden. Momentan ist es nur möglich eine der Zeilen zu durchsuchen.
Weiß Jemand für mein Problem eine Lösung? Vielen Dank im Voraus und beste Grüße
Daniel
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1750
Re: Suche in mehreren Spalten des Kombinationsfeldes
« Antwort #1 am: Februar 09, 2018, 15:06:33 »
Hallo Daniel,
Ein vorgeschaltetes Kombi könnte helfen.
In dem zeigst du die relevanten Spalten zur Auswahl an und AfterUpdate
manipulierst du die RowSource des Suchkombis entsprechend.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 
Folgende Mitglieder bedankten sich: Danielz

Offline Danielz

  • Newbie
  • Beiträge: 3
Re: Suche in mehreren Spalten des Kombinationsfeldes
« Antwort #2 am: Februar 14, 2018, 14:35:39 »
Hallo Ekkehard,
vielen Dank für Deine Hilfe! Allerdings bin ich mit meinem Problem leider noch nicht weitergekommen.
Ich habe jetzt allerdings versucht mit einem vorgeschalteten ungebunden Textfeld, das als Suchfeld für das nachfolgende Kombi dient, mein Problem zu lösen. Dafür habe ich den nachfolgenden Code "bei Änderung" eingetragen. Bis jetzt ist damit allerdings auch nur die erste Spalte des Kombis durchsuchbar. Gibt es die Möglichkeit für "Dim Kriterium as String" mehrere Kriterien zu hinterlegen, so dass man auch noch nach Spalte zwei und drei des Kombis suchen kann?   
Viele Grüße
Daniel
Private Sub ogrSuchart_AfterUpdate()
    ArtikelSuchen
End Sub

Private Sub ArtikelSuchen()
    Dim strKriterium As String
    If Me!ogrSuchart = 1 Then
        strKriterium = "Institution LIKE  '" & strSuchbegriff & "*'"
    Else
        strKriterium = "Institution LIKE '*" & strSuchbegriff & "*'"
    End If
    Me!IstInstitution.RowSource = "SELECT Institutionen_Nr, Institution FROM Testabfrage WHERE " & strKriterium & " ORDER BY Institution"
End Sub

Private Sub txtSuche_Change()
    strSuchbegriff = Me!txtSuche.Text
    ArtikelSuchen

End Sub
[/size][/size]
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1750
Re: Suche in mehreren Spalten des Kombinationsfeldes
« Antwort #3 am: Februar 14, 2018, 17:06:22 »
Hallo Daniel,
Anbei ein Minimalbeispiel wie es gehen könnte.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Josef P.

  • Access-Profi
  • **
  • Beiträge: 236
    • Code-Bibliothek für Access-Entwickler
Re: Suche in mehreren Spalten des Kombinationsfeldes
« Antwort #4 am: Februar 16, 2018, 14:56:55 »
Hallo!

Wenn eine Textsuche ausreicht, ist vielleicht auch die Eingabe des Suchwertes in die Combobox eine Option.
Beispiel: ComboboxFilterControlTest

mfg
Josef

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23297
Re: Suche in mehreren Spalten des Kombinationsfeldes
« Antwort #5 am: Februar 16, 2018, 15:43:53 »
Hallo,


auch eine (einfache) Möglichkeit:


Private Sub txtSuche_Change()
     Me!IstInstitution.RowSource = "SELECT InstitutionName, Abkürzung, Zusatz, Straße, Ort  FROM tbl_Institutionen WHERE " & _
    "  InstitutionName & "|" & Abkürzung & "|" & Zusatz & "|" & Straße & "|" & Ort Like '*" &  Me!txtSuche.Text  & "*' ORDER BY InstitutionName"
End Sub

Offline Danielz

  • Newbie
  • Beiträge: 3
Re: Suche in mehreren Spalten des Kombinationsfeldes
« Antwort #6 am: April 19, 2018, 15:13:22 »
Hallo Franz,

ich habe gerade erst deine Antwort gesehen. Wenn ich deine Möglichkeit ausprobiere bekomme ich einen Fehler bezüglich der senkrechten Striche | , was genau sollen die bewirken? Kann ich die evtl. weglassen?

Viele Grüße
Daniel
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1750
Re: Suche in mehreren Spalten des Kombinationsfeldes
« Antwort #7 am: April 19, 2018, 15:45:52 »
Hallo Daniel,
Es liegt wohl an einem kleinen Tippfehler von Franz
Zitat
"  InstitutionName & "|" & Abkürzung & "|" & Zusatz & "|" & Straße & "|" & Ort Like '*" &  Me!txtSuche.Text  & "*' ORDER BY InstitutionName"
Na ja, schwer zu erkennen; - das erste " muss weg.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1750
Re: Suche in mehreren Spalten des Kombinationsfeldes
« Antwort #8 am: April 19, 2018, 15:49:41 »
Uuups, noch mal nachgezählt, - kann's also nicht sein. Sorry.
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1205
Re: Suche in mehreren Spalten des Kombinationsfeldes
« Antwort #9 am: April 20, 2018, 08:18:30 »
Die Feldinhalte musst Du schon in der Bedingung trennen, damit kein absoluter Kuddelmuddel entsteht. Zur Trennung empfieht sich ein Zeichen zu nehmen, dass in keinem der Felder selbst vorkommt. Franz hat dafür das Pipe-Zeichen (|) veranschlagt, was Du natürlich auch austauschen kannst. Ist das gewählte Zeichen nicht innerhalb der in der Windows-Systemsteuerung eingestellten Codepage für nicht-Unicode fähige Programme (dazu zählt der VBA-Editor im Jahr 2018 leider immer noch) verfügbar (das ist hierzulande normalerweise die Windows Codepage 1252), so kann das Trennzeichen auch mittels der Funktion ChrW() eingetragen werden. Ich verwende in ähnlichen Situationen oft Chr(255) => (ÿ), was in deutschen Texten nicht vorkommt.

Private Sub txtSuche_Change()
   Me.IstInstitution.RowSource = _
      "SELECT InstitutionName," & vbLf & _
      "       Abkürzung," & vbLf & _
      "       Zusatz," & vbLf & _
      "       Straße," & vbLf & _
      "       Ort" & vbLf & _
      "FROM   tbl_Institutionen" & vbLf & _
      "WHERE  InstitutionName & '|' & Abkürzung & '|' & Zusatz & '|' & Straße & '|' & Ort" & _
      "       Like '*" & Me!txtSuche.Text & "*'" & vbLf & _
      "ORDER  BY 1"
   'vollkommen gleichwertig ist; Chr$(124) => |
   Me.IstInstitution.RowSource = _
      "SELECT InstitutionName," & vbLf & _
      "       Abkürzung," & vbLf & _
      "       Zusatz," & vbLf & _
      "       Straße," & vbLf & _
      "       Ort" & vbLf & _
      "FROM   tbl_Institutionen" & vbLf & _
      "WHERE  InstitutionName & Chr$(124) &" & vbLf & _
      "       Abkürzung & Chr$(124) &" & vbLf & _
      "       Zusatz & Chr$(124) &" & vbLf & _
      "       Straße & Chr$(124) &" & vbLf & _
      "       Ort" & _
      "       Like '*" & Me.txtSuche.Text & "*'" & vbLf & _
      "ORDER  BY 1"
End Sub

Siehe auch Anführungszeichen und Apostrophe auf DBWiki.
Grüße von der (⌒▽⌒)