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
Office-jártasság 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.

×