Recordset tulajdonság

É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

A kifejezés megadása kötelező. A kifejezés az Érvényesség listán 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.

Egy űrlap rekordhalmazának újbóli lekérdezésekor (Requery) (például a Forms(0).Recordset.Requerymegadásával) az űrlap kötetlenné válását eredményezheti. Valamely rekordhalmazhoz kötött űrlap adatainak frissítéséhez állítsa az űrlap RecordSource (Rekordforrás) tulajdonságának értéké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
Next
End 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.Close
End 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 If
End Sub
Ismeretek bővítése
Oktatóanyagok megismerése
Új szolgáltatások listájának lekérése
Részvétel az Office Insider programban

Hasznos volt az információ?

Köszönjük a visszajelzését!

Köszönjük visszajelzését. Jobbnak látjuk, ha az Office egyik támogatási szakemberéhez irányítjuk.

×