Vlastnost Recordset (Sada záznamů)

Důležité :  Tento článek je strojově přeložený – přečtěte si toto upozornění. Anglickou verzi tohoto článku pro referenci najdete tady.

Platí pro:

Objekt ComboBox (Pole se seznamem)

objekt Form (Formulář)

objekt ListBox (Seznam)

objekt Report (Sestava)

Vrací nebo nastavuje objekt ADO Recordset nebo DAO Recordset představující Zdroj záznamů pro daný formulář, sestavu, seznam nebo pole se seznamem. Čtení/zápis.

výraz.Recordset

výraz Povinný. Výraz, který vrací jeden z objektů uvedených v seznamu Platí pro.

Poznámky

Vlastnost Recordset vrací objekt sady záznamů poskytující data, kterými se prochází ve formuláři, sestavě, seznamu nebo poli se seznamem. Je-li formulář založen například na dotazu, odkaz na vlastnost Recordset je ekvivalentní klonování objektu Recordset (sada záznamů) pomocí téhož dotazu. Avšak provede-li se změna v určení, který záznam je v sadě záznamů vrácených vlastností Recordset aktuální, pak se na rozdíl od použití vlastnosti RecordsetClone nastaví i aktuální záznam formuláře.

Tato vlastnost je k dispozici pouze jazyka Visual Basic for Applications (VBA) kód.

Chování čtení/zápis vlastnosti Recordset je dáno typem sady záznamů (ADO nebo DAO) a typem dat (Access nebo SQL) obsažených v sadě záznamů určené touto vlastností.

Sada záznamů Typ

Založený na datech SQL

Založený na datech Access

ADO

Čtení/zápis

Čtení/zápis

DAO

N/A

Čtení/zápis

V následujícím příkladu se otevře formulář, otevře se sada záznamů a potom se vytvoří vazba formuláře na sadu záznamů nastavením vlastnosti Recordset formuláře na nově vytvořený objekt Recordset.

Global rstSuppliers As ADODB.RecordsetSub MakeRW()DoCmd.OpenForm "Suppliers"Set rstSuppliers = New ADODB.RecordsetrstSuppliers.CursorLocation = adUseClientrstSuppliers.Open "Select * From Suppliers", _CurrentProject.Connection, adOpenKeyset, adLockOptimisticSet Forms("Suppliers").Recordset = rstSuppliersEnd Sub

Použití vlastnosti Recordset:

  • Vytvoření vazby několika formulářů na společnou množinu dat. To umožňuje synchronizaci několika formulářů. Například

    Set Me.Recordset = Forms!Form1.Recordset

  • Využití metod s objektem Recordset, které nejsou na formulářích přímo podporovány. Vlastnost Recordset můžete použít například u metody ADO Najít nebo DAO Najít ve vlastním dialogu pro nalezení záznamu.

  • Obtékání transakce (kterou lze odvolat) kolem sady úprav, jež ovlivňují více formulářů.

Změnou vlastnosti Recordset formuláře se mohou změnit také vlastnosti RecordSource (Zdroj záznamů), RecordsetType (Typ sady záznamů) a RecordLocks (Uzamčení záznamů). Některé vlastnosti týkající se dat mohou být také potlačeny (přepsány), například vlastnost Filter, FilterOn, OrderBy a OrderByOn.

Vyvolání metody Znovu spustit dotaz (Requery) sady záznamů formuláře (například Forms(0).Recordset.Requery) může způsobit, že se formulář stane nevázaný. Aby se obnovila data ve formuláři vázaná na sadu záznamů, nastavte vlastnost RecordSource formuláře na sebe samu (Forms(0).RecordSource = Forms(0).RecordSource).

Pokud je formulář vázán na sadu záznamů, dojde v případě použití příkazu Filtrovat podle formuláře (Filter by Form) k výskytu chyby.

Příklad

V následujícím příkladu se vlastnost Sada záznamů použije k vytvoření nové kopie objektu Sada záznamů z aktuálního formuláře a potom se vytisknou názvy polí v ladicím okně.

Sub Print_Field_Names()
Dim rst As DAO.Recordset, intI As Integer
Dim fld As Field
Set rst = Me.Recordset
For Each fld in rst.Fields
' Print field names.
Debug.Print fld.Name
Next
End Sub

V následujícím příkladu se vlastnost Recordset a objekt Recordset používá k synchronizaci sady záznamů s aktuálním záznamem formuláře. Když se v poli se seznamem vybere název společnosti, použije se k nalezení záznamu pro tuto společnost metoda FindFirst a tím se vyvolá zobrazení nalezeného záznamu ve formuláři.

Sub SupplierID_AfterUpdate()
Dim rst As DAO.Recordset
Dim strSearchName As String
Set rst = Me.Recordset
strSearchName = CStr(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Record not found"
End If
rst.Close
End Sub

Následující kód pomáhá zjistit, jaký typ sady záznamů bude vrácen vlastností Recordset za různých podmínek.

Sub CheckRSType()
Dim rs as Object
Set rs=Forms(0).Recordset
If TypeOf rs Is DAO.Recordset Then
MsgBox "DAO Recordset"
ElseIf TypeOf rs is ADODB.Recordset Then
MsgBox "ADO Recordset"
End If
End Sub

Poznámka : Upozornění ke strojovému překladu: Tento článek přeložil počítačový systém bez zásahu člověka. Společnost Microsoft nabízí tyto strojové překlady proto, aby umožnila uživatelům, kteří nemluví anglicky, získat informace o produktech, službách a technologiích této společnosti. Protože je tento článek strojově přeložený, může obsahovat slovní, syntaktické nebo gramatické chyby.

Sdílení Facebook Facebook Twitter Twitter E-mail E-mail

Byly tyto informace užitečné?

Výborně! Je ještě něco dalšího, co byste nám chtěli dát vědět?

Jak bychom ho mohli vylepšit?

Děkujeme vám za zpětnou vazbu.

×