collapse

* Benutzer Info

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

* Wer ist Online

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

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14135
  • stats Beiträge insgesamt: 68396
  • stats Themen insgesamt: 9212
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Wert in Listbox per VBA auswählen und Unterformular steuern  (Gelesen 548 mal)

Offline compinaut

  • Newbie
  • Beiträge: 45
Hallo,
ich habe folgendes Problem und ich hoffe jemand kann mir helfen.
Ich möchte gern über zwei Listboxen die Datensätze in einem Unterformular steuern. Dies geht auch problemlos bis ich den erfassten Suchbegriff wieder löschen und auf den Startwert zurückgehen möchte. Ich finde keine Möglichkeit, den Wert der beiden Listbox auf den ersten Wert zu setzen und das dann gleichzeitig das Unterformular aktualisiert wird. Es wird zwar der erste Begriff in den Listboxen markiert (über Selected(0) = True, aber es erfolgt keine Aktualisierung des Unterformulars wie es wäre wenn ich den ersten Wert selber anklicken würde.
Wie könnte dies gehen?
Gruß
compinaut
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: Wert in Listbox per VBA auswählen und Unterformular steuern
« Antwort #1 am: Mai 08, 2018, 16:59:03 »
... und das gelingt alles allein durch Gedankenübertragung? Wenn nicht, zeige doch bitte den verwendeten Code.
Grüße von der (⌒▽⌒)
 

Offline compinaut

  • Newbie
  • Beiträge: 45
Re: Wert in Listbox per VBA auswählen und Unterformular steuern
« Antwort #2 am: Mai 09, 2018, 08:36:21 »
Hallo,
ich habe mal den Code mit ergänzenden Beschreibungen nachfolgend eingefügt:


' VerknüpfenNach = "txtBereich;Stichwort"
' VerknüpfenVon = "Bereich;Stichwort"

'txtBereich ist eine ungebundene Listbox mit den Werten 157 und 153
'Stichwort ist eine ungebundene Listbox mit einem Stichwort, dass über eine ungebundene Textbox eingestellt wird
'Bereich ist ein Datenfeld in der Abfrage des Unterformulars
'Stichwort ist ein Datenfeld in der Abfrage des Unterformulars

Private Sub cmdFilterEntfernen_Click()

Dim sql As String

'Die Listbox mit dem Wert "Bereich" soll auf die Zahl "157" zurückgesetzt werden, damit im Feld "txtBereich" immer eine Auswahl getroffen ist.
'es gibt noch den Wert "153" (also zwei feststehende Werte in der Listbox)
'Haupt- und Unterformular sind über die zwei Felder "Stichwort" und "txtBereich" miteinander verknüpft
Me.txtBereich.Selected(0) = True

'wieder alle Datensätze in der Listbox von vorne anzeigen (damit sollte auch das Unterformular mit dem ersten Datensatz in der Listbox verknüpft werden.
'dies geht jedoch nicht mehr seit dem ich zwei Werte für die Verknüpfung zwischen Haupt- und Unterformular definiert habe.

Me.Stichwort.Selected(0) = True

sql = "SELECT DISTINCTROW [Tab Stichwörter].Stichwort FROM [Tab Stichwörter] ORDER BY [Tab Stichwörter].Stichwort;"

Me.Stichwort.RowSource = sql

' Das Feld mit dem Suchbegriff leeren (der Suchbegriff bestimmt, welcher Datensatz in der Listbox "Stichwort" ausgewählt sein soll).
Me.txtSuchfeld = ""


End Sub


Private Sub txtSuchfeld_AfterUpdate()

Dim strSQL As String

'nach Eingabe eines Stichwortes in einem ungebundenen Textfeld namens "Stichwort" wird die Listbox mit den Stichwörtern auf das gefundene Stichwort gesetzt
'und das Unterformular wird automatisch aktualisiert
strSQL = "SELECT DISTINCTROW [Tab Stichwörter].Stichwort FROM [Tab Stichwörter] WHERE ((([Tab Stichwörter].Stichwort) Like '*" & txtSuchfeld.Text & "*')) ORDER BY [Tab Stichwörter].Stichwort;"

Me.Stichwort.RowSource = strSQL

End Sub


Als Anhang sind mal zwei Screenshots der Anwendung (image2 bei der Suche mit einem Klick auf den Suchwert und image3 nach dem Zurückstellen der Werte per VBA - es ist der zuletzt angeklickte Suchwert aktiv - es soll aber der erste Wert in der Listbox ausgewählt sein) beigefügt. Ich hoffe, dass deutlich geworden ist, was bezweckt werden soll.

Gruß
compinaut
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: Wert in Listbox per VBA auswählen und Unterformular steuern
« Antwort #3 am: Mai 09, 2018, 09:24:50 »
Ich denke, dass hier ein Requery auf das Formular im Unterformularsteuerelement ausreicht (entsprechenden Namen im Code einsetzen).Private Sub cmdFilterEntfernen_Click()

   'Die Listbox mit dem Wert "Bereich" soll auf die Zahl "157" zurückgesetzt
   'werden, damit im Feld "txtBereich" immer eine Auswahl getroffen ist.  Es
   'gibt noch den Wert "153" (also zwei feststehende Werte in der Listbox)
   'Haupt- und Unterformular sind über die zwei Felder "Stichwort" und
   '"txtBereich" miteinander verknüpft.
   Me.txtBereich = Me.txtBereich.ItemData(0)

   'Wieder alle Datensätze in der Listbox von vorne anzeigen (damit sollte
   'auch das Unterformular mit dem ersten Datensatz in der Listbox verknüpft
   'werden.  Dies geht jedoch nicht mehr seit dem ich zwei Werte für die
   'Verknüpfung zwischen Haupt- und Unterformular definiert habe.

   With Me.Stichwort
      .RowSource = "SELECT Stichwort FROM [Tab Stichwörter] ORDER BY 1;"
      .Value = Me.Stichwort.ItemData(0)
   End With

   'Das Feld mit dem Suchbegriff leeren (der Suchbegriff bestimmt, welcher
   'Datensatz in der Listbox "Stichwort" ausgewählt sein soll).
   Me.txtSuchfeld = Null
   
   'Unterformular auf die Sprünge helfen. :)
   Me.NameDesUnterformularSteuerelements.Form.Requery

End Sub

Private Sub txtSuchfeld_AfterUpdate()

   'Nach Eingabe eines Stichwortes in einem ungebundenen Textfeld namens
   '"Stichwort" wird die Listbox mit den Stichwörtern auf das gefundene
   'Stichwort gesetzt und das Unterformular wird automatisch aktualisiert.

   Me.Stichwort.RowSource = "SELECT Stichwort FROM [Tab Stichwörter] " & _
                            "WHERE  Stichwort Like '*" & Me.txtSuchfeld & "*' " & _
                            "ORDER BY 1;"

End Sub
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: compinaut

Offline compinaut

  • Newbie
  • Beiträge: 45
Re: Wert in Listbox per VBA auswählen und Unterformular steuern
« Antwort #4 am: Mai 09, 2018, 12:26:12 »
Hallo Lachtaube,
vielen lieben Dank für die schnelle Hilfe.
Ich habe den Code übernommen und es funktioniert nun.
Die Anweisung mit Selected(0) ist wohl nur für die Anzeige wichtig aber nicht für die Aktualisierung des Feldes.
Nochmals vielen Dank. Da wäre ich alleine nicht drauf gekommen.
Beste Grüße
compinaut
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1432
Re: Wert in Listbox per VBA auswählen und Unterformular steuern
« Antwort #5 am: Mai 09, 2018, 12:33:55 »
Nun, das mit Selected ist mehr eine Frage des persönlichen Stils, und das kannst Du auch wieder ändern, wenn es für Dich verständlicher ist. Selected wende ich nur bei Listenfeldern mit Mehrfachauswahl an, weil es ja dort keine gültige Wert-Eigenschaft gibt.

Wichtig ist nur, das Requery zum richtigen Zeitpunkt auf das Formular im Unterformularsteuerelement abzusetzen.
Grüße von der (⌒▽⌒)
 

 

VBA-Code funktioiniert bei einem Wert, bei einem anderen nicht

Begonnen von OPSBoard Access Programmierung

Antworten: 7
Aufrufe: 7947
Letzter Beitrag Mai 19, 2010, 17:29:09
von OPS
Gebunde Spalte - Wert ist Weg

Begonnen von ACCOBoard Formular

Antworten: 1
Aufrufe: 2236
Letzter Beitrag Juni 10, 2010, 09:10:38
von DF6GL
Filter Wert überprüfen

Begonnen von pepperbreathBoard Access Programmierung

Antworten: 3
Aufrufe: 2831
Letzter Beitrag Juni 15, 2010, 15:23:44
von pepperbreath
Dropdownlisteneintrag mit Tabelle verknüpfen und Wert speichern für Vergleich

Begonnen von ohnePlanBoard Microsoft Excel

Antworten: 2
Aufrufe: 2404
Letzter Beitrag August 16, 2010, 13:14:16
von ohnePlan
Nach Eingabe von 2 Variablen automatsich den passenden Wert anzeigen

Begonnen von harvey186Board Formular

Antworten: 10
Aufrufe: 5598
Letzter Beitrag August 27, 2010, 16:50:39
von MzKlMu