2013-03-12 2 views
5

Ich habe ein zweispaltiges Kombinationsfeld in einem Access-Formular, das eine Schlüssel-zu-Code-Zuordnung darstellt. Die erste Spalte des Kombinationsfelds ist die 'gebundene Spalte' (dh die Spalte, die verwendet wird, wenn MyComboBox.Value aufgerufen wird).Access VBA: Finden Sie Element in Kombinationsfeld basierend auf nicht gebundene Spalte

Ich muss die Value meines Kombinationsfelds basierend auf einem Wert in der zweiten Spalte dynamisch festlegen. wenn meine Kombinationsfeld Quelle für zB:

ich den Wert des Kombinationsfelds festlegen können einfach mit ComboBox.Value = "A2", aber wie würde ich das gleiche tun, die zweite Spalte? ComboBox.Value = "EFGH" ist offensichtlich nicht gültig. Im Wesentlichen für die Logik entlang der Linien von ComboBox.Value = ComboBox.ValueWhereSecondColumnEquals("EFGH")

Antwort

5

Und es ist nicht basierend auf einer Tabelle/Abfrage annehmend:

Dim i As Integer 

For i = 0 To ComboBox.ListCount-1 
    If ComboBox.Column(1, i) = "EFGH" Then 
     ComboBox.Value = ComboBox.ItemData(i) 
     Exit For 
    End If 
Next i 
+1

'zu ListCount-1' :) Ich wollte gerade das hinzufügen. – Fionnuala

+0

Guter Ort! Geändert :) – RichardC

+0

Manchmal ist die beste Antwort die einfachste Antwort - ich kann nicht glauben, dass es mir nicht in den Sinn gekommen ist, sie durchzuschreiben! – Kai

3

Suche Unter der Annahme, dass Sie Ihre Combo auf einer Tabelle basiert, können Sie den Wert in der Tabelle DLookUp:

ComboBox.Value = Dlookup("Value","Table","Code='" & sCode & "'") 
+0

Das funktioniert auch. Es basiert nicht auf einer Tabelle im Moment, aber wahrscheinlich wird es irgendwann – Kai

+0

Kai sein, es sei denn, Sie haben sehr wenige Werte, und durch sehr wenige ich meine 2 oder 3, sollte es auf einer Tabelle für die einfache Wartung und Verwendung basieren in Berichten und Abfragen. – Fionnuala

+0

Ich weiß - das Ganze wird später zu SQL Server zurückdatiert werden, aber im Moment warten auf eine vollständige Mapping-Liste zur Verfügung gestellt werden und bin nur zusammen ein UI-Design (mit Null Back-End) zusammen, um den Client für anfängliches Feedback. – Kai

0

Wenn die Quelle der Wert in einem Combobox, und das Ziel ist ein ungebundenes Combobox gesetzt .BoundColumn die Eigenschaft des Ziels Combobox zu der entsprechenden Spalte und weist nur die Combobox Werte normalerweise, wie in der C-Box ausgewählt ist = cboY. Auch wenn das Ziel-Kombinationsfeld gebunden ist, können Sie die gebundene Spalte nach Bedarf dynamisch ändern.

Verwandte Themen