Érvényesség

ComboBox objektum

Form objektum

ListBox objektum

Report objektum

Az adott űrlap (Form), jelentés (Report), lista (ListBox) vezérlő vagy kombinált lista (ComboBox) vezérlő rekordforrását jelentő ADO-rekordhalmaz vagy DAO-rekordhalmaz visszatérítésére vagy beállítására szolgál. Olvasható/írható.

kifejezés.Recordset

Kifejezés Megadása kötelező. Egy kifejezés, amely a Hatókör listában szereplő objektumok egyikét adja vissza.

Megjegyzések

A Recordset (Rekordhalmaz) tulajdonság az űrlapról, listapanel-vezérlőből vagy kombinált lista-vezérlőből böngészett adatokat biztosító rekordhalmaz-objektumot téríti vissza. Lekérdezésen alapuló űrlap esetén a Recordset tulajdonság megadása például egyenértékű a rekordhalmaz-objektum ugyanazon lekérdezéssel történő ismételt előállításával (klónozásával). A RecordsetClone tulajdonság használatától eltérően azonban, az űrlap Recordset tulajdonsága által visszatérített rekordhalmaz aktuális rekordjának megváltoztatása beállítja az űrlap aktuális rekordját is.

Ez a tulajdonság csak Visual Basic for Applications (VBA) kód használatával érhető el.

A Recordset olvasási/írási viselkedése a rekordhalmaz típusától (ADO vagy DAO), és a tulajdonság által azonosított rekordhalmazban szereplő adatok típusától (Access vagy SQL) függ.

Rekordhalmaz típusa

SQL-adatok alapján

Access-adatok alapján

ADO

Olvasható/írható

Olvasható/írható

DAO

Olvasható/írható

Az alábbi példában szereplő kód megnyit egy űrlapot, majd az űrlapot a rekordhalmazhoz köti úgy, hogy az űrlap Recordset tulajdonságát az újonnan létrehozott rekordhalmaz-objektumra állítja.

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

A Recordset tulajdonságot az alábbi esetekben érdemes használni:

  • Ha szeretne több űrlapot egyetlen közös adatkészlethez kötni. Ez lehetővé teszi több űrlap szinkronizálását. Például:

    Set Me.Recordset = Forms!Form1.Recordset

  • Ha olyan módszereket szeretne a rekordhalmaz-objektumon alkalmazni, melyek közvetlenül űrlapon történő alkalmazását nem támogatja a rendszer. Használhatja például a Recordset tulajdonságot egyéni párbeszédablakból indított ADO keresés vagy DAO keresés végrehajtásához, egy rekord megkereséséhez.

  • Ha szeretné a tranzakciókat (melyek visszagörgethetők) több űrlapot érintő szerkesztések mentén tördelni.

Egy űrlap Recordset tulajdonságának módosítása a RecordSource (Rekordforrás), RecordsetType (Rekordtípus), és RecordLocks (Rekordzárolás) tulajdonságokra is hatással lehet. Ezenkívül elképzelhető, hogy a rendszer felülír néhány adatokkal kapcsolatos tulajdonságot, például a Filter (Szűrő), FilterOn, OrderBy (Rendezés), és OrderByOn tulajdonságokat.

Az űrlap rekordhalmazának Requery metódusának meghívása (például Forms(0).Recordset.Requery) kötetlenné teheti az űrlapot. Egy rekordhalmazhoz kötött űrlap adatainak frissítéséhez állítsa az űrlap RecordSource tulajdonságát önmagára (Forms(0).RecordSource = Forms(0).RecordSource).

Ha egy űrlap rekordkészlethez kötött, a Szűrés űrlappal parancs kiadásakor hibát fog jelezni a rendszer.

Példa

Az alábbi példában szereplő kód futtatásakor a rendszer létrehozza a rekordhalmaz-objektum egy új másolatát a Recordset tulajdonságot használva, majd a kiírja a mezők neveit a Debug (Hibakeresés) ablakba.

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    NextEnd Sub

A következő példa a Recordset tulajdonságot és a rekordhalmaz-objektumot használva szinkronizálja a rekordhalmazt az űrlap aktuális rekordjával. Amikor a kombinált listából a felhasználó kiválaszt egy cégnevet, a rendszer a FindFirst (Első találat) módszerrel megkeresi az adott céghez tartozó rekordot, aminek eredményeképpen az űrlap ezt a rekordot fogja megjeleníteni.

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.CloseEnd Sub

Az alábbi kód segítségével megállapíthatja, hogy a Recordset tulajdonság hatására milyen rekordhalmazt térít vissza a rendszer különböző feltételek teljesülése esetén.

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 IfEnd Sub

További segítségre van szüksége?

További lehetőségeket szeretne?

Fedezze fel az előfizetés előnyeit, böngésszen az oktatóanyagok között, ismerje meg, hogyan teheti biztonságossá eszközét, és így tovább.

A közösségek segítségével kérdéseket tehet fel és válaszolhat meg, visszajelzést adhat, és részletes ismeretekkel rendelkező szakértőktől hallhat.