2013-03-12 22 views
5

Anahtar kod eşlemeyi temsil eden bir Access formunda iki sütunlu bir combo kutusu var. Birleşik kutunun ilk sütunu 'ciltli sütun' (yani, MyComboBox.Value çağrıldığında kullanılan sütun) 'dir.VBA'ya erişme: Ciltlenmemiş sütuna göre açılan kutuda öğe bul

Açılan kutunun Value işlevini ikinci sütunda bulunan bir değere göre dinamik olarak ayarlamalıyım. örneğin, benim açılan kutu kaynağı ise: İkinci kolon kullanılarak

ben sadece ComboBox.Value = "A2" ile açılan kutu değerini ayarlayabilirsiniz, ancak nasıl aynısını yapardınız? ComboBox.Value = "EFGH" açıkçası geçerli değil.

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

cevap

5

Ve bu tablo/sorguya dayalı değil varsayarak: Esasen sizin açılan bir tablo dayanmaktadır varsayarsak ComboBox.Value = ComboBox.ValueWhereSecondColumnEquals("EFGH")

+1

'ListCount-1 ':) Bunu eklemek üzereydim. – Fionnuala

+0

İyi nokta! Değişti :) – RichardC

+0

Bazen en iyi cevap en basit olanıdır - sadece döngüden geçeceğine inanamıyorum; – Kai

3

çizgisinde mantığı arayan, tabloda değerini DLookUp edebilirsiniz: kaynak bir combobox seçilen bir değerdir, ve hedef Cbox olarak, uygun bir kolona hedef combobox .BoundColumn özelliğini ayarlamak bir ilişkisiz combobox ve daha sonra, sadece normal combobox değerleri atamak ise

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 
+0

Bu da işe yarıyor. Şu andaki bir tabloya dayanmıyor, ancak çok az değeriniz olmadıkça ve muhtemelen 2 veya 3 demek istemediğim sürece muhtemelen bir noktada – Kai

+0

Kai'de olacak, bakım ve kullanım kolaylığı için bir tabloya dayanmalıdır. raporlama ve sorgulamalarda. – Fionnuala

+0

Biliyorum - her şey daha sonra SQL Server'a geri döndü ama şu anda tam bir eşleme listesi için bekliyorum ve sadece bir UI tasarım (sıfır arka uç ile) birlikte müşteriye göstermek için bir araya getiriyorum ilk feeback. – Kai

0

= cboY. Hedef birleşik giriş kutusu bağlı olsa bile, bağlı sütunu gerektiği gibi dinamik olarak değiştirebilirsiniz.