konto usunięte

Temat: Combobox - wskazywanie na ID

Witam
Proszę o pomoc w następującym problemie z oprogramowaniem Comboboxa.
Otóż ma on działać tak, po wybraniu danej specjalności lekarskiej z Comboboxa, pole tekstowe poniżej powinno wskazywać ID wybranej specjalności (klucz główny, nie może być nullem). Jest to mi potrzebne przy scenariuszu dodawania nowego lekarza, przy którym musi zostać podana ID specjalności, ale żeby było to czytelne w formularza wybieramy specjalność a pole ID specjalności powinno uzupełnić się automatycznie.

Poniżej grafika zawierająca niezbędne dane:

Obrazek

Niestety nie mogę dołączyć aplikacji.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Combobox - wskazywanie na ID

Pole ID_Specjalizacji można oprzeć o formułę:
 =Dlookup("ID_Specjalizacji";"Table specjalnośc";Nazwa specjalizacji='" & [Specjalność] & "'")

Parametr [Specjalność] to nazwa pola kombi, jeżeli nazywa się inaczej, trzeba tam wstawić prawidłową nazwę.

Można też spróbować oprzeć to pole kombi o kwerendę składająca się 2 kolumn: pierwsza to Id specjalności, druga - jej nazwa. Szerokość pierwszej kolumny można ustawić na 0cm, więc nie będzie widoczna, ale da się ją odczytać.

konto usunięte

Temat: Combobox - wskazywanie na ID

Witam
Pani Marzanno bardzo dziękuje za pomoc, ale proszę jeszcze o małą pomoc.
Po zmodyfikowaniu formuły do swoich danych i próbie wklejenia ich do TextBoxa -> Źródło formantu - dostaje informacje iż wyrażenie zawiera nieprawidłowy ciąg.

Wklejane wyrażenie: =Dlookup("ID_Specjalizacja";"Table Specjalizacja";Nazwa_specjalizacji='" & [Kombi47] & "'")

Próbowałem również usunąć dziwne według mnie cudzysłowy na
=Dlookup("ID_Specjalizacja";"Table Specjalizacja";Nazwa_specjalizacji=" & [Kombi47] & ")

tym razem w texboxie pojawia się "Błąd"Ten post został edytowany przez Autora dnia 07.06.15 o godzinie 18:06
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Combobox - wskazywanie na ID

Przepraszam, to moja literówka, zapomniałam o jednym cudzysłowie. Kombi47 ma format tekstowy, prawda?
Formuła powinna wyglądać tak:
 
=Dlookup("ID_Specjalizacja";"Table Specjalizacja";"Nazwa_specjalizacji='" & [Kombi47] & "'")

Dla parametrów będących tekstem musi być oprócz cudzysłowu także apostrof górny. Ta końcówka formuły rozpisana słownie wygląda więc tak:
(...) = apostrof górny cudzysłów znak & [kombi47] znak & cudzysłów apostrof górny cudzysłów

konto usunięte

Temat: Combobox - wskazywanie na ID

Hmm, dziwna sprawa nadal wyskakuje komunikat:

"Wprowadzone wyrażenie ma nieprawidłową składnię"

Tak Kombi47 ma format tekstowy, jest to lista wartości.

Próbowałem zastąpić znaki średników przecinkami ale nadal to samo.

Próbowałem zastąpić Table Specjalizacja przez samo Specjalizacja ale również to nie pomogło.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Combobox - wskazywanie na ID

Może w formule źle są wpisane nazwy tabel i/lub kolumn? Z tych screenów nie wszystko da się odczytać, poza tym nie mam pewności, czy w widocznych tabelach to nazwy czy tytuły kolumn - to też ma kluczowe znaczenie.
Jaka jest nazwa drugiej kolumny w tabele Table specjalność?

konto usunięte

Temat: Combobox - wskazywanie na ID

Już spieszę z odpowiedzią:

nazwy tabel z MSSQL:

tabela: SPECJALIZACJA
kolumny: ID_Specjalizacja, Nazwa_specjalizacji

tabela: LEKARZ
kolumny: ID_Lekarza, Imię_Lekarza, Nazwisko_Lekarza, ID_Specjalizacja

Druga kolumna w tabeli SPECJALIZACJA to Nazwa_specjalizacji
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Combobox - wskazywanie na ID

W takim przypadku drugi argument funkcji powinien być bez słowa Table czyli:
=Dlookup("ID_Specjalizacja";"Specjalizacja";"Nazwa_specjalizacji='" & [Kombi47] & "'")

Źródło wierszy dla pola Kombi47 to jedna kolumna?
Nie mam już pomysłów, musiałabym to zobaczyć.

konto usunięte

Temat: Combobox - wskazywanie na ID

O, teraz działa, TextBox faktycznie przyjmuje wartości ID_Specjalności w zależności od wybranej Nazwa_specjalizacji z ComboBoxa, ale niestety dalej mam problem z zapisaniem rekordu (nowy lekarz) gdyż wyskakuje komunikat że ID_Specjalizacji nie może być nullem... Właśnie o to mi chodziło żeby zczytać ten ID z nazwy specjalizacji, ale to chyba nie rozwiązuje mojego problemu, chyba nie mam pomysłu jak to zrobić... Acces musiałby jakoś powiązać że te ID_Specjalizacji nowego rekordu znajduje się właśnie w naszym nowym TexBoxie.Ten post został edytowany przez Autora dnia 07.06.15 o godzinie 20:56
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Combobox - wskazywanie na ID

Jeżeli ten formularz jest oparty na kwerendzie, to co jest źródłem danych formantu ID_Specjalizacja? Po wstawieniu funkcji, znika przecież bezpośrednie powiązanie z polem tabeli i nie trafia tam zapisana wartość.
W takim wypadku zrobiłabym inaczej: trzeba przywrócić powiązanie pola z tabelą (czyli źródło formatu ID_Specjalizacja ustawić na ID_Specjalizacja z kwerendy. Do pola Kombi47 przypisać kod VBA lub makro, które przy zdarzeniu po aktualizacji wstawi do ID_Specjalizacja wartość wyliczoną z funkcji.

konto usunięte

Temat: Combobox - wskazywanie na ID

Witam
Niestety formularz nie jest oparty na kwerendzie. Oparty jest on na dwóch tabelach
LEKARZ oraz SPECJALIZACJA. Niestety dalej nie poradziłem sobie z tym problemem.

Spróbowałem utworzyć kwerendę (2222) zawierającą Nazwa_specjalizacji oraz ID_specjalizacji, w comboboxie jako źródło formatu dałem - ID_specjalizacji, jako źródło wierszy :
SELECT [2222].[Nazwa_specjalizacji], [2222].[ID_Specjalizacja]
FROM [2222];
niestety przy tworzeniu nowego lekarza i próbie wyboru specjalizacji z listy dostaje komunikat:
"Nie można edytować formantu, jest on związany z polem autonumerowanie 'ID_specjalizacji'

Faktycznie id_specjalizacji jest kluczem głównym i ma autonumerowanie, ale przecież ja wybieram specjalizację a nie tworzę nową.


Obrazek
Ten post został edytowany przez Autora dnia 19.06.15 o godzinie 20:56
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Combobox - wskazywanie na ID

Czytałam post na Codeguru, więc tu małe uzupełnienie. Kwerendę można tworzyć nie tylko za pomoca kreatora, można ją zrobić samodzielnie w widoku projektu..
Opis:
Kwerenda wybierająca

Filtr w kwerendzie wybierającej
Ryszard Magdycz

Ryszard Magdycz Inżynier Elektronik

Temat: Combobox - wskazywanie na ID

Czy id_specjalizacja jest kluczem typu auto-number czy liczba?

Ja mam podobny problem z kontrolka kombi, gdzie zamiast jednej mam aż 3 kontrolki kombi, po wybraniu ich wartości, chciałbym żeby zostało wybrane ID z tej tabeli, w której pola są powiązane z tymi kontrolkami kombi, a potem, żeby ta wartość tego id była wykorzystana w drugiej związanej relacją tabeli.

Niestety nie działa to, nie jest wybrane to id. Gdy zastosowałem typ auto-number, zaczęło to działać, ale generowane są nadmiarowe rekordy z tą samą wartością pól związanych z tymi 3 kontrolkami kombi. Ja zaś chcę, żeby kontrolki kombi wybierały wartości z już istniejących rekordów, i na podstawie tych wartości określały wartość id, które będzie wykorzystane w drugiej tabeli.Ten post został edytowany przez Autora dnia 05.07.15 o godzinie 12:10

Następna dyskusja:

Combobox i wskazywanie na ID




Wyślij zaproszenie do