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
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.
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.
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
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
@iDevelop: DZIĘKUJĘ! DZIĘKUJĘ CI! DZIĘKUJĘ CI! :) – CodingInCircles
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
Dziękuję Za uratowanie mnie godzin :) –