Zdravím, mám formulář s několika řádky úplně vyplněnými a první řádek vyplňuji. Chtěl bych poprosit o radu jakej je příkaz pro automatické vyplnění hodnoty v políčku v prvním řádku stejnou hodnotou z stejného políčka v druhém řádku. Je jedno jestli po poklepnutí nebo si udělám tlačítko, v podstatě bych potřeboval poradit jak do konkrétního příkazu ve Visual Basic:
hdnota políčka v tomto řádku = hodnota z předešlého řádku. Blbost vím, ale o to dřív se mě zbavíte:-) Dík za odpověď
ACCESS-adresa řádku ve formuláři?? Vyřešeno
Re: ACCESS-adresa řádku ve formuláři??
Jen rychlá a určitě ne dokonalá rada. Mám pocit, že automaticky se to doplńuje pokud to máš jako Pole se seznamem což by ale předpokládalo že se seznam hodnot odněkud musí vzít, čili buď z předvyplněných hodnot, nebo ze samostatné tabulky či dotazu. Jinak by to snad mělo jít když by sis vyjel kopii sady záznamů formuláře a tam najel na předposlení záznam. Např. sem našel tento kód co si najíždí v kopii záznamů na aktuální záznam dle hodnoty v poli formuláře:
Sub SupplierID_AfterUpdate()
Dim rst As Recordset
Dim strSearchName As String
Set rst = Me.RecordsetClone
strSearchName = Str(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Record not found"
Else
Me.Bookmark = rst.Bookmark
End If
rst.Close
End Sub
Ten řádek Me.Bookmark = rst.Bookmark by se dal nahradit nečím jako:
rst.MovePrevious 'přejdi na předchozí záznam od aktuálního v kopii sady záznamů
Me![Pole] = rst![Pole] 'zapiš do pole ve formuláři hodnotu z pole v sadě záznamů
Ještě by se to ale mělo ošetřit pro případ že žádný předchozí zánam není, takže asi něco jako
On Error Resume Next
rst.MovePrevious
select case err
Case 0
Case else
msgbox(Err.Number & Error.Description) 'tady by se dalo zjistit číslo chyby co by to generovalo pro případ že by nebylo kam přejít anebo prostě by se to ignorovalo a nic se nedoplňovalo...
End Select
Sub SupplierID_AfterUpdate()
Dim rst As Recordset
Dim strSearchName As String
Set rst = Me.RecordsetClone
strSearchName = Str(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Record not found"
Else
Me.Bookmark = rst.Bookmark
End If
rst.Close
End Sub
Ten řádek Me.Bookmark = rst.Bookmark by se dal nahradit nečím jako:
rst.MovePrevious 'přejdi na předchozí záznam od aktuálního v kopii sady záznamů
Me![Pole] = rst![Pole] 'zapiš do pole ve formuláři hodnotu z pole v sadě záznamů
Ještě by se to ale mělo ošetřit pro případ že žádný předchozí zánam není, takže asi něco jako
On Error Resume Next
rst.MovePrevious
select case err
Case 0
Case else
msgbox(Err.Number & Error.Description) 'tady by se dalo zjistit číslo chyby co by to generovalo pro případ že by nebylo kam přejít anebo prostě by se to ignorovalo a nic se nedoplňovalo...
End Select
Re: ACCESS-adresa řádku ve formuláři??
Zdarec, dik moc za radu, nejsu teď bohužel tam kde tenhle problém řeším, ale hned jak se tam dostanu tak vyzkouším a dám vědět. Testoval sem ale ještě jinej způsob co mě napadl dodatečně, je trapnej ale funkční. Zjistil sem si příkaz, kterej mě posune o řádek níž, tam si nechám hodnoty načíst do proměnných, dalším příkazem se vrátím na aktuální řádek a ty hodnoty tam vrazím. Jak říkám, takový dětský řešení, ale funguje. Do toho cos mě poradil se pustim hned jak to pude. Dík moc, Martin.
--- Doplnění předchozího příspěvku (14 Črc 2011 00:32) ---
Zdarec, dik moc za radu, nejsu teď bohužel tam kde tenhle problém řeším, ale hned jak se tam dostanu tak vyzkouším a dám vědět. Testoval sem ale ještě jinej způsob co mě napadl dodatečně, je trapnej ale funkční. Zjistil sem si příkaz, kterej mě posune o řádek níž, tam si nechám hodnoty načíst do proměnných, dalším příkazem se vrátím na aktuální řádek a ty hodnoty tam vrazím. Jak říkám, takový dětský řešení, ale funguje. Do toho cos mě poradil se pustim hned jak to pude. Dík moc, Martin.
--- Doplnění předchozího příspěvku (14 Črc 2011 00:32) ---
Zdarec, dik moc za radu, nejsu teď bohužel tam kde tenhle problém řeším, ale hned jak se tam dostanu tak vyzkouším a dám vědět. Testoval sem ale ještě jinej způsob co mě napadl dodatečně, je trapnej ale funkční. Zjistil sem si příkaz, kterej mě posune o řádek níž, tam si nechám hodnoty načíst do proměnných, dalším příkazem se vrátím na aktuální řádek a ty hodnoty tam vrazím. Jak říkám, takový dětský řešení, ale funguje. Do toho cos mě poradil se pustim hned jak to pude. Dík moc, Martin.
Re: ACCESS-adresa řádku ve formuláři??
Tak moje rada taky asi nebyla úplně nej... Další co mě teď napadlo: událost po aktualizaci - zapsat hodnotu do proměnné - tu použít pro doplnění v dalším záznamu
Hlavně jde o to, jeslti chceš jenom doplňovat poslední hodnotu z posledního záznamu anebo chceš aby ti to automaticky nabízelo hodnoty jak píšeš na klávesnici (jako Excel) - tento případ je právě možný když je místo textového pole pole se seznamem... aspoň si to tak pamatuji
Hlavně jde o to, jeslti chceš jenom doplňovat poslední hodnotu z posledního záznamu anebo chceš aby ti to automaticky nabízelo hodnoty jak píšeš na klávesnici (jako Excel) - tento případ je právě možný když je místo textového pole pole se seznamem... aspoň si to tak pamatuji
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti