Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Listenfeld nach SQL-Abfrage befüllen
zurück: Größenlimit Abfrage / Bericht - Wie gehts weiter? weiter: Abfrage mit Datumswerten (Abhängig von Tabeinträgen) Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Badfunk
Einsteiger


Verfasst am:
21. März 2008, 22:14
Rufname:

Listenfeld nach SQL-Abfrage befüllen - Listenfeld nach SQL-Abfrage befüllen

Nach oben
       Version: Office 2003

Hallo Ihr Access Gurus!

Vielleicht könnt ihr mir bei meinem kleinen Problem helfen.

Ich habe ein Formular mit einer Combobox (cbxChooseLanguage) und einem Listenfeld (lstShowWord).

Nun kann ich in meiner Combobox zweierlei Sprachen auswählen (Englisch und Deutsch". Nach auswählen der jeweiligen Sprache soll eine SQL-Abfrage gestartet werden und der sql String im Listenfeld ausgegeben werden.

Und genau das bekomme ich nicht hin. Das manuelle Eintragen der SQL-Abfrage in die die Eigenschaften "Datensatzherkunft" des Listenfeldes funktioniert, jedoch nicht die automatische Variante.

Die Synthax:
Code:
Private Sub cbxChooseLanguage_Change()
    Dim sql As String
   
    If Me!cbxChooseDirect.Text Like "English" Then
        sql = "SELECT *" & _
                "FROM qryEng "
        Me!lstShowWord.RowSource = CurrentDb.OpenRecordset(sql, _
                                                         dbOpenForwardOnly)(0)
        Me!lstShowWord.Requery
      Else
        MsgBox "Nicht geklappt", vbOKOnly
    End If
End Sub
...ich hoffe ihr könnt mir da weiterhelfen. Confused
Marmeladenglas
komme zurecht


Verfasst am:
21. März 2008, 22:21
Rufname:


AW: Listenfeld nach SQL-Abfrage befüllen - AW: Listenfeld nach SQL-Abfrage befüllen

Nach oben
       Version: Office 2003

Probiers mal so:
Code:
        Me!lstShowWord.RowSource = sql
Ein Requery ist nicht notwendig !
Badfunk
Einsteiger


Verfasst am:
21. März 2008, 23:09
Rufname:

AW: Listenfeld nach SQL-Abfrage befüllen - AW: Listenfeld nach SQL-Abfrage befüllen

Nach oben
       Version: Office 2003

Hallo Marmeladenglas!

Danke für Deine schnelle Antwort, habs so ausprobiert und es klappt wunderbar!

Jetzt möchte ich mein Formular um eine Filterfunktion erweitern. Hierzu habe ich ein Textfeld zur Wörtereingabe. Das Feld habe ich einfach mal txtEnter genannt.
Ein weiteres Textfeld (txtSuche) ist als hidden deklariert und somit nicht sichtbar.

jetzt möchte ich in mein txtEnter einen Buchstaben eingeben und die auswahl an Wörtern soll sich in meinem listenfeld aktualisieren.

Ich habe es auch schon so hin bekommen, dass ich das Listenfeld nun nach jedem getippten Buchstaben aktualiesiere, aber wiederrum nur wenn ich die Datensatzherkunft manuell eintippe.

Den erweiterten Code zeige ich euch jetzt mal...nur funktioniert meine SQL Abfrage nicht richtig. Ich bin mir bei der Synthax nicht sicher und deshalb bitte ich euch Experten nochmals um hilfe.
Code:
Private Sub cbxChooseDirect_Change()
    Dim sql As String
   
    If Me!cbxChooseDirect.Text Like "English" Then
        sql = "SELECT *" & _
                "FROM qryEng " & _
               "WHERE English_Word <> "" " & _
                     "[Art_eng_name]![English_Word] Like " * " & " & _
                                                        "Me!txtEnter & " * " "
        Me!lstShowWord.RowSource = sql
      Else
        MsgBox "Nicht geklappt", vbOKOnly
'COMMENT
' so sieht die WHERE abfrage aus wenn ich sie vereinfacht in Access als
' SQL-Code eintippe, nur bin ich mir bei meiner "VBA-Eingabe" nicht sicher...
' WHERE (((qryEng.English_Word) <> "") And (([Beschreibung] & '[Modul] &
' [Funktion] & [Version]) Like "*" & [txtEnter] & "*"))
    End If
End Sub

Private Sub txtEnter_Change()
    Me!txtSearch = Me!txtEnter.Text
    DoCmd.Hourglass True
    Me!lstShowWord.Requery
    DoCmd.Hourglass False
    Me!txtEnter.SetFocus
End Sub
Danke schonmal im vorraus!!!
Marmeladenglas
komme zurecht


Verfasst am:
22. März 2008, 10:45
Rufname:

AW: Listenfeld nach SQL-Abfrage befüllen - AW: Listenfeld nach SQL-Abfrage befüllen

Nach oben
       Version: Office 2003

Code:
Private Sub cbxChooseDirect_Change()
    Dim sql As String
   
    If Me!cbxChooseDirect.Text = "English" And Me!TextEnter <> "" Then
        sql = "SELECT *" & _
                "FROM qryEng " & _
               "WHERE English_Word Like '*" & Me!TextEnter & "*'"
        Me!lstShowWord.RowSource = sql
      Else
        MsgBox "Nicht geklappt", vbOKOnly
    End If
End Sub
Wenn das so eine Art Dictionary sein soll, würde ich das ein bißchen anders aufbauen. Im Kombifeld wird die Sprache ausgewählt, wie du es auch tust.

Im AfterUpdate-Ereignis des Kombifelds würde ich allerdings deinem Listenfeld, alle möglichen Vokabeln der ausgewählten Sprache zuweisen und nicht schon die Textbox auswerten.
Code:
    Me!Listenfeld.RowSource = "SELECT * FROM qry_English"
Werte doch den eingestellten KombiWert im AfterUpdate Ereignis deines TextEnter-Feldes aus. Ein Stern am Ende des Suchbegriffs sollte reichen - wär etwas verwirrend, wenn du "p" eingibst und dir apple z.b. angezeigt wird.
Z.b. hier, Einschränkung der Select auf Englisch oder Deutsch je nach Kombiauswahl:
Code:
Private Sub TextEnter_AfterUpdate()
    Dim strSQL      As String
    Dim strAuswahl  As String
   
    strAuswahl = Me!DeinKombi & "_Word" 'English_Word oder Deutsch_Word
    strSQL = "SELECT " & strAuswahl & " " & _
               "FROM qryEng " & _
              "WHERE " & strAuswahl & " Like '" & Me!TextEnter & "*'"
    Me!DeineListe.RowSource = strSQL
End Sub
Wie ist denn die Tabelle bzw. die Query aufgebaut ?
Badfunk
Einsteiger


Verfasst am:
24. März 2008, 22:05
Rufname:


AW: Listenfeld nach SQL-Abfrage befüllen - AW: Listenfeld nach SQL-Abfrage befüllen

Nach oben
       Version: Office 2003

Hallo Marmeladenglas!

Meine Antwort kommt aufgrund der Feiertage ein wenig verzögert.

Ich habe Deine Idee mal in meinem Formular umgesetzt und es funktioniert klasse.
Die Auswertung meines "Suchbegriffs" habe ich nun in das Kombi_Change() Ereignis hinein geschrieben:
Code:
Private Sub TextEnter_Change()
    Dim strSQL      As String
    Dim strAuswahl  As String
   
    strAuswahl = Me!DeinKombi & "_Word" 'English_Word oder Deutsch_Word
    strSQL = "SELECT " & strAuswahl & " " & _
               "FROM qryEng " & _
              "WHERE " & strAuswahl & " Like '" & Me!TextEnter & "*'"
    Me!DeineListe.RowSource = strSQL
End Sub
Hier funktioniert das wunderbar.

Ich bedanke mich bei Dir und wünsche noch vollens schöne Ostern!
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Inhalt von Listenfeld in Bericht übergeben 3 Sandnet 1125 12. Jul 2007, 09:36
KlausMz Inhalt von Listenfeld in Bericht übergeben
Keine neuen Beiträge Access Tabellen & Abfragen: Inhalt von Listenfeld als Filter verwenden 11 GregorJ 1125 20. März 2007, 18:17
GregorJ Inhalt von Listenfeld als Filter verwenden
Keine neuen Beiträge Access Tabellen & Abfragen: SQLabfrage aus 2 verschiedenen Tabellen 11 derArb 710 18. Feb 2007, 02:24
derArb SQLabfrage aus 2 verschiedenen Tabellen
Keine neuen Beiträge Access Tabellen & Abfragen: Left Join in Sql-Abfrage will nicht. 4 Tintenherz 1016 16. Jan 2007, 17:49
Willi Wipp Left Join in Sql-Abfrage will nicht.
Keine neuen Beiträge Access Tabellen & Abfragen: SQL-Abfrage (VBA) nach Excel exportieren 2 _hoschi_ 9567 19. Dez 2006, 10:03
_hoschi_ SQL-Abfrage (VBA) nach Excel exportieren
Keine neuen Beiträge Access Tabellen & Abfragen: SQL-Abfrage 10 Regine 814 15. Dez 2006, 16:52
Regine SQL-Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Eintrag in Listenfeld bei klick an abfrage übergeben? 5 Zamp 1012 07. Dez 2006, 07:58
derArb Eintrag in Listenfeld bei klick an abfrage übergeben?
Keine neuen Beiträge Access Tabellen & Abfragen: Nachfrage SQL-Abfrage 6 Stefffano 1097 24. Nov 2006, 20:46
Stefffano Nachfrage SQL-Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Bitte um Hilfe bei SQL-Abfrage 3 Moucker 602 15. Sep 2006, 15:08
Nouba Bitte um Hilfe bei SQL-Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Aufrunden in einer SQL-Abfrage, oder eine ganz andere Lösung 4 T.M.P. 4256 04. Mai 2006, 13:02
T.M.P. Aufrunden in einer SQL-Abfrage, oder eine ganz andere Lösung
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellenübergreifende Datenverknüpfungen in SQL-Abfrage 1 Gast 2320 28. März 2006, 08:18
stpimi Tabellenübergreifende Datenverknüpfungen in SQL-Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Berechnung im Listenfeld anzeigen? 3 Schnoop 804 20. Okt 2005, 08:24
Timbo Berechnung im Listenfeld anzeigen?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks