Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Xoar am Mai 10, 2011, 20:59:30

Titel: Per VBA mit SQL nen Listenfeld füllen...
Beitrag von: Xoar am Mai 10, 2011, 20:59:30
Hallo ihr Lieben,

bin gerade dabei meine Datenbank zu verfeinern und möchte dabei folgendes erreichen.
Ich habe drei Kontrollkästchen  1,2 und 3 in meinem Formular,

nun hab ich ein Listenfeld, welches ein bestimmten Inhalt aus tblMitarbeiter bekommen soll. In tblMitarbeiter gibt es ein Feld Wachabteilung wo entweder 1,2 oder 3 eingetragen ist. Nun soll das Listenfeld immer mit den Datensätzen befüllt werden, die per Kontrollkästchen ausgewählt sind, also alle mit Wachabteilung 1, 2, 3 oder jegliche Kombination.

Hab angefangen nen VBA Code zu schreiben, der per click-ereignis ausgelöst wird:

Public Sub Kontrollkästchen7_Click()
Dim strSQL As String
'WA I Button
    If Kontrollkästchen7.Value = True Then       
         strSQL = "SELECT Mitarbeiter_ID, Nachname, Vorname" & _
                   "FROM tblMitarbeiter " & _
                  "WHERE Wachabteilung = '1'"
         Form_UfoFahrzeugMitarbeiterzuweisung.ListenfeldName.RowSource = strSQL
    Else
       'kommt noch
    End If 
End Sub

Klappt natürlich nicht -.-
Bestimmt banal für euch, für mich jedoch höchst kompliziert. Also die drei Felder sind ja ausgewählt, Mitarbeiter_ID, Nachname und Vorname, das ganze aus tblMitarbeiter, und alle die wo Wachabteilung = 1 ist. Wo ist der Fehler?
Titel: Re: Per VBA mit SQL nen Listenfeld füllen...
Beitrag von: MzKlMu am Mai 10, 2011, 21:10:33
Hallo,
das Vorhaben ist völlig überflüssig- Du kannst Die Wachabteilung entweder mit einem Kombi (so wie ich es in meinem letzten Upload im anderen Beitrag gemacht habe) auswählen, oder Du legst eine Optionsgruppe an mit 3 Wahlmöglichkeiten (= 3 Häkchen). Eine Optionsgruppe lässt automatisch nur eine Auswahl zu.
Titel: Re: Per VBA mit SQL nen Listenfeld füllen...
Beitrag von: Xoar am Mai 10, 2011, 21:26:00
Optionsgruppe und Kombi ist leider nicht ausreichend, da auch ab und an getauscht wird, sprich zwei Wachabteilungen gleichzeitig im Listenfeld stehen müssen. Ich will ja nicht die Wachabteilung in die DB eintragen, sondern das Listenfeld mit Namen damit füllen.

Oder hab ich dein Post gerade falsch verstanden?

Titel: Re: Per VBA mit SQL nen Listenfeld füllen...
Beitrag von: Xoar am Mai 10, 2011, 22:00:36
ok habs, damit klappts

Public Sub Kontrollkästchen7_Click()
Dim st As String
    If Kontrollkästchen7.Value = True Then
          st = "SELECT Mitarbeiter_ID, Vorname, Nachname" _
          & " FROM tblMitarbeiter" _
          & " WHERE Wachabteilung='1'"
         Form_UfoFahrzeugMitarbeiterzuweisung.ListenfeldName.RowSource = st
         Form_UfoFahrzeugMitarbeiterzuweisung.ListenfeldName.Requery
      Else
         'kommt später
    End If
End Sub