Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno MS Access - specifický posun mezi větami databáze

Databáze MS Access (1997, popř. 2007). Jedna věta/řádek má 30 položek. Pro vkládání údajů do databáze je vytvořen formulář. Celé se to snažím koncipovat tak, aby se vůbec nepoužívala myš - výrazně zpomaluje práci...

Zadávání dat do formuláře (tedy jednoho řádku databáze) je řešeno tak, že po <enter> se kurzor posune na další položku dané věty. V jednom řádku se ovšem nevyplňují všechny položky; první čtyři vždycky a ze zbylých obvykle jen 3-5. Čili mezi prázdnými/nevyplňovanými položkami věty skáču mačkáním enteru.

Potřeboval bych dořešit jedinou věc, se kterou si nevím rady. Poslední vyplňovaná položka věty se pohybuje obvykle v druhé polovině databázové věty; někdy je to 16., jindy třeba 28. položka. Poslední položka to není skoro nikdy. Chtěl bych vytvořit klávesovou zkratku - ideálně by měla být modifikována klávesa PageDown - která by měla plnit následující: při jejím zmáčknutí by se měl kurzor (fokus) přesunout vždy na první položku následující věty. V defaultním nastavení Accessu je fokus posune na následující větu, ale na stejnou položku jako byl v minulé. Pro posun na první položku je potřeba následně mačkat Home. Mačkat v každé větě PageDown a hned poté Home je zdržující a otravné, takhle to nemůžu nechat, potřeboval bych to nějak sloučit do jedné klávesy. Databází je několik (se stejnou strukturou), roční objem zadávaných vět určitě přesahuje 100.000...

Tuším, že by mohla pomoci nějaké makro či spíše funkce VBA. Netuším ale jak na to...

Poradíte?

Příklad, abych to líp znázornil:
- databázová věta má položky A - Z
- jsem u šesté věty (A6 až Z6), fokus je na M6
- potřebuju se jedním stiskem klávesy (ideálně PageDown) dostat na A7.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Nevím, jak na to... Tak znovu: Otevřeš si zadávací form v návrhovém zobrazení, dál vlastnosti formu,…
uri 11.07.2008 16:56
uri
...až pojedeš někdy jižní Moravou nedaleko Rakouska a Slovenska, stav se na víno. Zatím posílám aspo… poslední
L-Core 11.07.2008 17:19
L-Core

Nevím, jak na to... Tak znovu: Otevřeš si zadávací form v návrhovém zobrazení, dál vlastnosti formu, "Při události Current" vytvoříš událostní proceduru, otevřeš a vložíš mnou výše uvedený příkaz - celé to vypadá takto:
Private Sub Form_Current()
If Me.OnKeyPress = "" Then
DoCmd.GoToControl "Název 1.položky"
End If
End Sub
Je to funkční na kterémkoli poli při vyplňování záznamu na stisk PgDn (nastavení pořadí na to nemá vliv). Rovněž můžeš "entrovat" až nakonec.
To touchwood: tvoje navrhované řešení "DoCmd.GoToRecord , , acNext DoCmd.GoToControl "Název 1.položky" bude bez problému fungovat pod příkazovým tlačítkem, ale požadavek byl na PgDn bez myšky.

Zpět do poradny Odpovědět na původní otázku Nahoru