Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Kombinationsfeld fült sich nicht dynamisch

Begonnen von Nadeshiko, Juni 17, 2015, 16:45:47

⏪ vorheriges - nächstes ⏩

Nadeshiko

Hallo Leute,

ich bins mal wieder :)

Ich hab ein Problem....ich hab ein Kombinationsfeld, welches sich dynamisch füllen sollte.
Ich wähle per ein Kombinationsfeld Land aus und ein anderes Kombinationsfeld füllt sich dynamisch mit Messengeländen...

Meine SQL Abfrage funkt aber das Feld füllt sich nicht...Vorschläge?

Private Sub cboMesseLand_AfterUpdate()

'**Bei Eingabe vom Land soll das Messegelände zugeordnet werden**
'----------------------------------------------------------------

Dim strListe As String
Dim rs As DAO.Recordset
Dim strSQL As String

'Erzeugen des Recordsets - hier befinden sich dann die anzuzeigenden Daten
strSQL = "SELECT GELAENDE FROM tblMesseOrt WHERE LAND='Russia'" ' & Me!cboMesseLand

Set rs = CurrentDb.OpenRecordset(strSQL)

'Nur weitermachen wenn Daten geliefert wurden
If rs.RecordCount > 0 Then
  Do While Not rs.EOF
    strListe = strListe & ";" & rs!GELAENDE
    rs.MoveNext
  Loop
Else
  MsgBox "Es sind keine Daten zum Füllen des Kombifeldes vorhanden!"
  Exit Sub
End If

MsgBox strListe 'Die Werte werden bis hierhin richtig angezeigt

'Festlegen der Eigenschaften für das Kombinationsfeld --funkt net ab hier...
Me!cboMesseGelaend.RowSourceType = "Wertliste"
Me!cboMesseGelaend.ColumnCount = "1"
Me!cboMesseGelaend.ColumnWidths = "5cm"
Me!cboMesseGelaend.RowSource = strListe

'Me!cboMesseGelaende.Requery

End Sub

MaggieMay

Hi,

sorry, aber warum weist du der RowSource des Kombifeldes nicht direkt die Abfrage zu?

Der RowSourceType heißt übrigens "Werteliste", bei Zuweisung per VBA sollte es aber wohl besser "ValueList" heißen.
Freundliche Grüße
MaggieMay

Nadeshiko

Hallo May!

Wie mach ich es denn, wenn die Abfrage von einem anderem Kombinationsfeld abhängt?

Die SQL Abfrage ist in dem Sinne (nach der Aktualisierung):
strSQL = "SELECT GELAENDE FROM tblMesseOrt WHERE LAND='" & Me!cboMesseLand &"'"

Viele Grüße

Nadeshiko

Ich glaub ich weiss wo der Fehler liegt. Ich hatte im Kombinaionsfeld vorher Manuell eine Wertliste erstellt. Ich hab mich erst jetzt im Nachhinein entscheiden eine Tabelle zu machen. Die Wertliste lässt sich aus irgendeinem Grund nicht mehr löschen. Wenn ich die Einträge lösche (im Entwurf und Layout Ansicht) und SPEICHERE...werden Sie trotzdem beim nächsten Aufruf erscheinen... Bei einem neuen Kombinationsfeld funktioniert der VBA Code....ist es ein Bug oder mach ich was falsch?

DF6GL

Hallo,

was jetzt?

Willst Du eine Wertliste oder Tabelle/Abfrage verwenden?

Stelle die Eigenschaft "Rowsourcetype" im Formularentwurf auf "Tabelle/Abfrage" ein und schreib den VBA_Code neu.

Private Sub cboMesseLand_AfterUpdate()

Dim strSQL As String

strSQL = "SELECT GELAENDE FROM tblMesseOrt WHERE LAND='"  & Me!cboMesseLand & "'"   'sofern es sich hier wirklich um TEXT handelt...

Me!cboMesseGelaend.RowSource = strSQL
'Me!cboMesseGelaend.Requery   'normalerweise überflüssig

End Sub

Nadeshiko

#5
Ich hab jetzt mal Wertliste gelassen. Hab ein neues Kombinationsfeld erstellt und dort hat mein VBA code problemlos funktioniert.

Was mich nur noch verwundert, warum sich die ehemalige Wertliste (die ich manuell vor etlichen Wochen) über Listeneigenschaften eingetragen habe, nicht mehr löschen lässt. Wenn man diese im Feld über Entwurf oder Layout entfernt, erscheint die trotz allem immer wieder. Daher kommt mein Verdacht, dass mein Code erst nicht funktionierte, weil die "alte" Wertliste immer noch eingetragen war.

und Danke, ich wusste nicht, dass es geht. Dachte, die Daten müssen immer als Wertliste übertragen werden!