Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Platí pro

Objekt ComboBox

Objekt Form

Objekt ListBox

Objekt Report

Vrátí nebo nastaví objekt ADO Recordset nebo DAO Recordset představující Zdroj záznamů pro zadaný formulář, sestavu, ovládací prvek seznam nebo pole se seznamem. Čtení/zápis

výraz.Recordset

Výraz Povinný argument. Výraz, který vrátí jeden z objektů v seznamu Platí pro.

Poznámky

Vlastnost Recordset vrací objekt sady záznamů poskytující data, která se prochází ve formuláři, sestavě, ovládacím prvku rozevíracího seznamu nebo ovládacím prvku pole se seznamem. Pokud je formulář například založený na dotazu, je odkaz na vlastnost Recordset ekvivalentní klonování objektu Recordset pomocí stejného dotazu. Na rozdíl od použití vlastnosti RecordsetClone se ale při změně záznamu, který je aktuální v sadě záznamů vrácené vlastností Recordset formuláře, zároveň nastaví aktuální záznam formuláře.

Tato vlastnost je dostupná jenom pomocí kódu jazyka VBA (Visual Basic for Applications).

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

Typ sady záznamů

Na základě dat SQL

Na základě dat Accessu

ADO

Čtení/zápis

Čtení/zápis

DAO

Nejde použít

Čtení/zápis

Následující příklad otevře formulář, otevře sadu záznamů a následně vytvoří vazbu 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

Pomocí vlastnosti Recordset můžete:

  • Vytvořit vazbu několika formulářů na společnou sadu dat. Tento postup umožňuje synchronizaci několika formulářů. Příklad:

    Set Me.Recordset = Forms!Form1.Recordset

  • Použít s objektem Recordset metody, které nejsou u formulářů přímo podporované. Vlastnost Recordset můžete například použít s metodami Find rozhraní ADO nebo Find rozhraní DAO k hledání záznamu ve vlastním dialogu.

  • Zabalit transakci (kterou lze vrátit zpátky) související s množinou úprav ovlivňující několik formulářů.

Při změně vlastnosti Recordset formuláře může dojít také ke změně vlastností RecordSource, RecordsetType a RecordLocks. Zároveň se můžou přepsat některé vlastnosti související s daty, například Filter, FilterOn, OrderBy a OrderByOn.

Volání metody Requery sady záznamů formuláře (například Forms(0).Recordset.Requery) může způsobit zrušení vazby tohoto formuláře. Pokud chcete aktualizovat data ve formuláři vázaném na sadu záznamů, nastavte vlastnost RecordSource formuláře samu na sebe (Forms(0).RecordSource = Forms(0).RecordSource).

Pokud je formulář vázaný na sadu záznamů, při použití příkazu Filtrovat podle formuláře dojde k chybě.

Příklad

V následujícím příkladu se vlastnost Recordset používá k vytvoření nové kopie objektu Recordset z aktuálního formuláře a zobrazení názvů polí v okně ladění.

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 dalším příkladu se vlastnost Recordset a objekt Recordset používá k synchronizaci sady záznamů s aktuálním záznamem formuláře. Při výběru názvu firmy v poli se seznamem se použije metoda FindFirst k vyhledání záznamu této firmy, což způsobí, že se na formuláři zobrazí nalezený záznam.

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á určit, jaký typ sady záznamů vrátí 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

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

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

×