ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ Command, ΠΏΡΠΈΡΠ²ΠΎΠΈΠ² Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Ρ ActiveConnection Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»ΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Recordset. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ°ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ Π½Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ Recordset Π·Π°ΠΏΠΈΡΡΠΌΠΈ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Execute ΠΎΠ±ΡΠ΅ΠΊΡΠ° Command. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:
Dim conTest As New Connection
Dim cmdTest As New Command
Dim rstTest As Recordset
Dim strSQL As String
...(ΠΊΠΎΠ΄, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ contest
... ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΡΡΡΠΎΠΊΡ strSQL)
' Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Command:
With cmdTest
Set .ActiveConnection = contest
.CommandText = strSQL
.CommandType = adcmdText
End With
rstTest.CursorType = adOpenForwardOnly
rstTest.lockType = adLockReadOnly
Set rstTest = cmdTest.Execute()
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Recordset Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Execute ΠΎΠ±ΡΠ΅ΠΊΡΠ° Connection. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Connection, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ SQL. ΠΡΠ΅ ΡΡΠΎ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π°:
Dim conVert As New Connection
Dim rstVert As Recordset
Dim strSQL As String
...(ΠΊΠΎΠ΄, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ conVert
... ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΡΡΡΠΎΠΊΡ strSQL)
rstVert.CursorType = adOpenForwardOnly
rstVert.lockType = adLockReadOnly
Set rstVert - conVert.Execute()
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Recordset, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ².
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π°
Open ΠΎΠ±ΡΠ΅ΠΊΡΠ° Recordset, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
Dim rstInPeace As New Recordset
Dim strSQL As String, strConnect As String strSQL = "SELECT * FROM Bicycles" 'ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ 1 ΠΠΎΠ΄, Π½Π°Π·Π½Π°ΡΠ°ΡΡΠΈΠΉ ΡΡΡΠΎΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ strConnect rstInPeace.Open strSQL, strConnect, adOpenForwardOnly
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Recordset
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Recordset Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΡ Π²ΠΈΠ΄ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΡΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Ρ.Π΄. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ
Recordset - Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Open ΠΎΠ±ΡΠ΅ΠΊΡΠ° Recordset, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ±Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π° ΡΠ°Π½ΡΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅
Π Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ ΠΊΡΡΡΠΎΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°ΠΏΠΈΡΡΠΌΠΈ. Π’ΠΈΠΏ ΠΊΡΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Recordset, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π·Π°ΠΏΠΈΡΡΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄ΡΡ Π»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΠ°ΠΆΠ°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Cursor Type ΠΈΠ»ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Π° Open Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°. ΠΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π² ΡΠ°Π±Π». 17.1. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΠΏ ΠΊΡΡΡΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ Forward-only.
Π’Π°Π±Π»ΠΈΡΠ° 17.1. Π’ΠΈΠΏΡ ΠΊΡΡΡΠΎΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Recordset
Π’ΠΈΠΏ ΠΊΡΡΡΠΎΡΠ°
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ°-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° CursorType
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
Forward-only
adOpenForwardOnly
Π Π°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, ΠΈΠ»ΠΈ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΈΠ»ΠΈ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ, Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΡΡ. ΠΡΠΎΡ ΡΠΈΠΏ ΠΊΡΡΡΠΎΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠΌ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·
Static
adOpenStatic
Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π½Π΅ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ, Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΡΡ. ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΡΠΊΠΎΡΠΎΡΡΡ, ΡΠ΅ΠΌ Π²Π°ΡΠΈΠ°Π½ΡΡ Keyset ΠΈ Dynamic
Keyset
adOpenKeyset
ΠΠ°Π±ΠΎΡ, ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π΅ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ
Dynamic
adOpenDynamic
ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Keyset, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Cursor Location ΠΎΠ±ΡΠ΅ΠΊΡΠ° Recordset ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΠΊΡΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°) ΠΈΠ»ΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ Π΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ adUseClient ΠΈΠ»ΠΈ adUseServer ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠΎΠΎΠ±ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΡΡΡΠΎΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ SQL Server ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ
ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π° ΠΊΡΡΡΠΎΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ - ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Jet. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π½Π°Π±ΠΎΡΠΎΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Cursor Type ΠΎΠ±ΡΠ΅ΠΊΡΠ° Connection. Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ LockType ΠΎΠ±ΡΠ΅ΠΊΡΠ° Recordset ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π·Π°ΠΏΠΈΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ°Π²Π½ΠΎ adLockPessimistic, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ LockType ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π² ΡΠ°Π±Π». 17.2.
Π’Π°Π±Π»ΠΈΡΠ° 17.2. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Recordset
Π’ΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ°-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° LockType
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
No lock (ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ)
adLockOptimistic
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π·Π°ΠΏΠΈΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²Π°ΡΡ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ (Π·Π°ΠΏΠΈΡΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° UpDate). ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΈ ΠΏΠΎΠ»Π½ΡΠΌΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΌΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ
Batch update
(ΠΠ°ΠΊΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅)
adLockBatchOptimistic
ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ, Π·Π° ΡΠ΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎ Π·Π°ΠΏΠΈΡΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ ΠΏΡΠΈ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠΌ, Π° Π½Π΅ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ
Read only (all records)
(Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅ (Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ))
adLockReadOnly
ΠΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΎΡΠΊΡΡΡ; ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΠΏΠΈΡΡΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½
Read only
(edited records) (Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅ (ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ))
adLockPessimistic
ΠΠ»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ° Π·Π°ΠΏΠΈΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ
ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Recordset Ρ ΠΏΠΎΠΌΠΎΡΡΡ VBA Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²Π°ΡΠΈΠΌ ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π°Π½Π½ΡΠ΅. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π° Π½ΠΈ ΠΎΠ΄Π½Π° Π·Π°ΠΏΠΈΡΡ. ΠΡΠΈΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ²ΠΎΠΉΡΡΠ² BOF (Beginning Of File - ΠΠ΅ΡΠΊΠ° Π½Π°ΡΠ°Π»Π° ΡΠ°ΠΉΠ»Π°) ΠΈ EOF (End Of File- ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°). ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΠΎΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠ°Π²Π½Ρ True, Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΡΡΡ. ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° And, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ±Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π²Π½Ρ True, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
If rstY.30F and rstY.EOF Then
MsgΠΠΎΡ "ΠΠ°ΠΏΠΈΡΠΈ Π² ΡΡΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ!"
End If
ADO ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ Π½Π°Π±ΠΎΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² Π½Π°Π±ΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ MoveFirst, Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² Π½Π°Π±ΠΎΡΠ΅- ΠΌΠ΅ΡΠΎΠ΄ MoveLast, Π° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ -1Π»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² Π½Π°Π±ΠΎΡΠ΅- ΠΌΠ΅ΡΠΎΠ΄ MoveNext ΠΈΠ»ΠΈ MovePr evi ous ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠ΅ΡΠΎΠ΄ Move ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Π½Π°Π±ΠΎΡΠ΅ Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ»ΠΈ Π½Π°Π·Π°Π΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ rstZ.Move -3 ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π½Π° ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π½Π°Π·Π°Π΄.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΡΠ½ΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π·Π°ΠΏΠΈΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Bookmark ΠΎΠ±ΡΠ΅ΠΊΡΠ° Recordset, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
varBookmark1 = rstA.Bookmark
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΡΠΎΠΉ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ, ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠΈΠ² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
rstA.Bookmark = varBookmark1
ΠΠ΅ΡΠΎΠ΄ Seek, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Find ( FindFist, FindLat, FindNext ΠΈ FindPrevious ) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ, Π±Π°Π·ΠΈΡΡΡΡΡ Π½Π° Π΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ΅ΡΠΎΠ΄ Seek ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅Π»Π΅Π²ΡΡ Π·Π°ΠΏΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ Find, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ AddNew Π΄Π»Ρ Π·Π°Π½Π΅ΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² Π½Π°Π±ΠΎΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Recordset ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ rstIng, Π²ΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, - ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ rst.Ing. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ '"ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»Ρ" Π΄Π°Π»ΡΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅). ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΡΡΠ°Π·Ρ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΠ΅ΡΠΎΠ΄ -AddXew ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠΎΠ»Ρ ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅: