MS Access úprava dat formulářem
V databázi MS Access 2010 si prostřednictvím formuláře procházím jednotlivé případy, kde nejsou povoleny úpravy dat. Na úpravu dat jsem si vytvořil nový formulář, kde mám povoleny úpravy. Formulář pro úpravy se otevře automaticky otevře po stisknutí talčítka (tlačíto ovládacího prvku). Po otevření je možno provádět úpravy u případu, ovšem problém je v tom, že se načte první případ a ne ten, který mám aktuálně zobrazen. Tudíž když jsem v případu 5 tak pri stisknutí tlačítka na otevření formuláře pro úpravu tak se zobrazí případ 1. Potřeboval bych, aby se mi při stalčení tlačítka zobrazil formulář, kde můžu editovat záznamy u případu, který mám aktuálně prohlížený.
Díky moc za radu.
Honza
tomu formuláři musíš nadefinovat datový pohled (dotaz nebo zdroj záznamů) předfiltrovaný podle "nadřazeného" formuláře. Tj. základem bude select, jehož filtr bude brát hodnotu z form!nadřazený_form.filtrovací_pole
když ve vlastnostch formuláře pro editace zadám zdroj a zadá ho ve vlastnostech jednotlivých polí, tak se mi jako první objeví stále ten první případ ale ne ten aktuální. pokud u daného pole v editačním formuláři nezadám zdroj a zadám pouze výchozí hodnotu tak mi to to zobrazí aktuální případ, ale bohužel nejde zase editovat, změny se neuloží. ani když vytvořim příkazové tlačitko uložit záznam.
Ne, nerozumíme si.
Datový zdroj tvého (pod)formuláře musí vrátit jeden jediný záznam, a to ten, který je zobrazen v tom prvním formuláři, na který se chceš odkazovat. To se dělá tak, že jako datový zdroj toho podformuláře dáš dotaz, který zafiltruje podle aktuální hodnoty pole "nadřazeného" formuláře.
edit: podívej se do Northwindu, tam tuším je takový formulář.
ano, zdroje jsou stejné.
když budu mít tabulku osoby (jméno a příjemí)
a vytovřím formulář z této tabulky a bude tam jméno a příjmení (nebude možno je upravovat)
vytvořím příkazové tlačítko, které bude otevírat formulář který bude vycházet rovněž z tabulky osoby
ale ubde jej možné editovat. ale při kliknutí na tlačítko se musí otevřít osoba, která je otevřena v původním formuláři. takže zroje obou formulářů jsou stejné.
zdroje LOGICKY nemohou být stejné, protože v podformuláři bude muset LOGICKY být ještě "filtrovací" klauzule WHERE cosi_id=forms!můj_form.cosi_id
to mi pak ale nelze upravit. když v editačním formuláři něco bud chít upravit, tak mě to nepustí, i k dyž mám povoleny úpravy
ale jde to upravit.
edit: tady jsem ti udělal takový malý vzor (všimni si, že "filtrovací" formulář1 jde editovat a že ukazuje pouze jeden záznam proti 3 kusům v needitovatelném "základním" adresáři):
a postavený select:
edit2: technicky by ještě bylo vhodné odstranit u "formulář1" navigační lištu a přidat tlačítko pro uložení záznamu.
Děkuji za návod, ale pořád mi to nejde. je možné tady nějakým způsobem zaslat soubor?
když se zaregistruješ, můžeš ho vložit sem (ideálně zabalený).
přikládám soubor,
potřebuji, když klikneš na tlačítko úprav (vlevo druhé tlačítko s tužkou) otevře se formulář úprav. a potřebuji aby se zobrazil stejný případ jako je v předchozím formuláři.
a ještě když jsem u toho, je možné aby se úpravy uložily až po stisknutí tlačítka "uložit" doposud se mi to ukládá automaticky hned při změně.
Děkuji
jasně jsem ti psal, že zdroj dat NEMŮŽE být stejný jako pro nadřazený formulář! A co nevidím? Zdroj je tabulka!
už jsem na to přišel
díky moc.