» Poradna » Programy

Provázání bunek v Access

 |   | 

Prosím vás, chci se zeptat, zda jde provázat nějak bunky v Accessu. Mám dva problémy, ukáži je na příkladu.

1) mám teď 3 buňky: kraj, okres, města
v 1. buňce vypisuji všechny kraje pomocí seznamu, ve 2. všechny okresy a ve 3. všechny města. a potřeboval bych provázat, když třeba v prvním zadám středočeský kraj, aby mi to v seznamu vybralo jen okresy v tom zadaném (středočeském) kraji a pak aby to automaticky vybralo města v tom okresu. Bohužel teď vypisuji všechno

2). když mám nějakou buňku 1 , tak potřebuji, aby se do buňky 2 vypsalo totéž, co je v buňce 1 a opačně. aby byli provázáno.

Samozřejmě, že toto je vše ve formuláři, tak vše se potom musí ukládat do tabulky!
děkuji za rady!

Mohlo by vás také zajímat

Odpovědi na otázku

 |   | 

Odpovím všeobecně. Jednotlivá pole (buňky jsou v Excel) ve formuláři Access lze provázat pomocí procedur VB. To ale neřeší Tvůj problém. Tvůj problém je, že se neorientuješ v používání Access. Byla by také dobrá častečná znalost AJ pro používání VB.
1. Pro začátek si vytvoř 3 tabulky (kraj=ID,kraj; okres=ID,ID-kraj,okres; obec=ID,ID-okres,obec) a mezi nimi vytvoř relace 1:n. Pokud bys použil jen 1 tabulku, měl bys v ní řádově desetitisíce až statisíce záznamů (podle počtu obcí). Takto v tabulce "kraj" bude asi 10 záznamů, v tabulce "okres" řádově stovky záznamů a v tabulce "obec" počet záznamů dle tvých požadavků. Pomocí vytvořeného dotazu resp. dotazů zobrazíš požadované výstupy (tj. desetitisíce až statisíce záznamů ).
2. Vytvoř si zadávací formulář zdrojově napojený na tabulky nebo dotaz.
3. Vytvoř si zobrazovací formulář (formuláře) s ovládacími prvky zdrojově napojený na tabulky nebo dotazy.
Nevím, zda tě odpověď dovede k cíli, ale snažil jsem se.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Děkuji za odpověď! teď jsem to zkoušel, udělal jsem si 3 tabulky, dotazy, přesně podle návodu a pak jsme vytvořil formulář , kde mám pole se seznamem pro kraj, okres i obec, ale bohužel stejně se mi zobrazují všechny hodnoty , co mám v dotazu.
Jak mám prosím provázat ty pole? moc by mi to pomohlo! píšete něco o VB, bohužel netuším, jak by to šlo tam udělat. napadá mě jedině použít If ... ElseIf .... Else. ale to by byl pro každý okres děsně moc možností . opravdu netuším., jak to provázat. děkuji za pomoc a za konkrétní ukázku.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Zkus formulářový výstup pro zobrazení kraj, okres a obec s možností výběru.
1) Vytvoř samostatný formulář, zdroj záznamů 3 tabulky propojené v relaci 1:n bez polí.
V záhlaví formuláře vytvoříš 3x pole se seznamem pro výběr kraj, okres a město a příkazové tlačítko pro zrušení výběru. Podrobněji v bodě 3) až 5).
2) Vytvoř podformulář (nekonečný formulář nebo datový list), zdroj záznamů 3 tabulky propojené v relaci 1:n,
pole podformuláře kraj, okres a obec, řazení vzestupně. Podformulář vlož do těla samostatného formuláře bez propojení.
3) Pro výběr kraje bude "PoleSeSeznamem1", zdroj řádků tabulka "kraj", pole "kraj", seskupit, řazení vzestupně.
Do události "Po aktualizaci" (AfterUpdate) vytvoř proceduru, která po výběru kraje vyfitruje v podformuláři vybraný kraj a zároveň
pomocí SQL vytvoří pomocnou tabulku "Pomocna", kterou použijeme jako zdroj řádků pro výběr okresu v "PoliSeSeznamem2".
Private Sub PoleSeSeznamem1_AfterUpdate()
' Najít záznam odpovídající ovládacímu prvku.
Dim rs As Object
Dim X
Dim SQL1
Set rs = Me.Recordset.Clone
rs.FindFirst "[Kraj] = '" "
DoCmd.RunSQL SQL1
DoCmd.SetWarnings True 'Zobrazovat syst zpravy
DoCmd.RunCommand acCmdRefreshPage
End Sub
4) Pro výběr okresu bude "PoleSeSeznamem2", zdroj řádků tabulka "Pomocna", pole "okres", seskupit, řazení vzestupně.
Do události "Po aktualizaci" (AfterUpdate) vytvoř proceduru.
Private Sub PoleSeSeznamem2_AfterUpdate()
' Najít záznam odpovídající ovládacímu prvku.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[Okres] = '" "
DoCmd.RunSQL SQL
DoCmd.SetWarnings True
Exit_Příkaz4_Click:
Exit Sub
Err_Příkaz4_Click:
msgbox Err.Description
Resume Exit_Příkaz4_Click
End Sub
6) Pro výběr města bude "PoleSeSeznamem3", zdroj řádků tabulka "město", pole "město", seskupit, řazení vzestupně.
Výběr města bude fungovat samostatně, tj buď kraj a okres, zrušit nebo město,zrušit. Proceduru zkus vytvořit sám.
Ty procedury budou asi zmršené, protože to nebere Ukázat celý příspěvek

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Provázání, Kraj, Středočeský kraj, Středočeský, Okres