2011-06-21 18 views
5

Mam pole kombi, które ma typ odnośnika, tj. Wybrałem źródło jako kolumnę z tabeli i zapisuję wybraną wartość w innej tabeli. Tabela, którą przeglądam ma inną kolumnę i potrzebuję wartości w tej kolumnie, aby była wyświetlana w polu tekstowym i za każdym razem, gdy zmieniam wartość w polu kombi, potrzebuję odpowiedniej wartości do wyświetlenia w polu tekstowym. Jak mogę to zrobić? To, co zrobiłem do tej pory, to napisanie zapytania Select, które wybiera odpowiednią kolumnę na podstawie wartości pola kombi. Czy jest na to bardziej przyzwoity sposób? Proszę pomóż mi!Jak wypełnić wartość pola tekstowego na podstawie wartości w polu Combo w MS Access 2007?

Odpowiedz

12

Wprowadź źródło pola kombi do 2 pól, np. SELECT id, name FROM Customers
Upewnij się, że odpowiednio ustawiono właściwość Column Count kombinacji na wartość 2.
Następnie należy utworzyć niezwiązane źródło pola tekstowego równe =MyCombo.Column(1) (z pamięci, ta kolumna ma wartość zero).
To wszystko, wymagany kod zerowy.

+0

@iDevelop: DZIĘKUJĘ! DZIĘKUJĘ CI! DZIĘKUJĘ CI! :) – CodingInCircles

+0

Próbowałem tej metody. Ale działa tylko przy pierwszym jej utworzeniu. Kiedy zamykam i ponownie go otwierać, pole tekstowe, które zostało ustawione na "ComboBox.Column (1)" pokazuje '#Name?'. Dlaczego to się dzieje? Co jest nie tak? – CodingInCircles

+0

Dziękuję Za uratowanie mnie godzin :) –

3

Bardziej przyjemnie jest użyć zdarzenia w polu kombi np. onChange, więc po dokonaniu wyboru zdarzenie ustawia wartość pola tekstowego.

me!txtTextBox1 = me!cboComboBox1.column(1) 

W ten sposób będzie działać za każdym razem.

Można również użyć przycisku z onClick itp ale wybór należy do Ciebie (jak wspomniano w poprzednim poście, zmienić liczbę kolumn w oparciu o źródła rzędzie z 0 jako pierwszy.

+2

Ustawienie niezwiązanego pola tekstowego zależnego od kombinacji, jak to ilustruje @iDevlop, działa za każdym razem bez kodu, więc jest lepszym rozwiązaniem, IMHO. – Fionnuala

0

Po przeczytaniu pytanie próbowałem następujących, i wydaje się działać dobrze (jak dotąd):

aby wyświetlić więcej niż jedną kolumnę zaznaczenia combobox, że uciekają się do poniższego:

Place TextBox nad combobox, Rozmiaru poprzez próbkowanie innych pól, tak aby obejmował ramkę tekstową o f combobox. Celowo zostawiłem małą spację na prawo od NOWEGO pola tekstowego, aby wskazać, że to NIE jest częścią combobox.

w źródle sterowania dla pola tekstowego wprowadź poniższe wyrażenie:

=[DefaultAcct].[Column](1) & " " & [DefaultAcct].[Column](2) 

Następnie w „onChange” przypadku combobox, ustawić fokus do pola tekstowego.

Private Sub DefaultAcct_Change() 
    txtConcatenate1.SetFocus 
End Sub