study/ADO
액세스 VBA 강좌_ADO_레코드 이동
emily-photo
2012. 5. 2. 13:37

|
■ Contents
1. BOF속성과 EOF속성
ADO의 Recorsset 오브젝트로 참조할 수 있는 레코드는 1개 뿐이다.이 레코드를 최신 레코드라고 부른다.Recorsset 오브젝트를 작성한 직후에는 앞 레코드가 최신 레코드이다.아래그림은 레코드셋속에서 최신 레코드가 이동할 수 있는 범위이다.앞 레코드보다도 전에 이동하면 BOF속성의 값은 True가 된다.또,최종 레코드보다도 뒤에 이동하면 EOF속성의 값은 True이 된다.
BOF | BOF=True | 앞 레코드 | BOF=False
EOF=False | 최종 레코드 | | EOF | EOF=True |
레코드셋에 레코드가 1개도 포함되어 있지 않는 경우는 다음의 그림과 같이 되고 있다.레코드셋의 BOF속성과 EOF속성은 어느 쪽도 True이 되어 있다.최신 레코드를 이동하는 것은 불가능하다.
2. 최신 레코드를 이동한다 .
【서식】recorsset.MoveFirst :앞 레코드에 이동 recorsset.MovePrevious ;1개 전(앞)의 레코드에 이동 recorsset.MoveNext :다음의 레코드에 이동 recorsset.MoveLast :최종 레코드에 이동
recorsset:열려 있는 Recorsset 오브젝트
Recorsset 오브젝트의 CursorType속성의 값이 adOpenForwardOnly,LockType속성의 값이 adLockReadOnly의 경우 이 레코드셋은 앞 레코드에서 최종 레코드 방향만큼 스크롤 가능하다.MoveLast 방법,MovePrevious 방법은 실행할 수 없다.
【사용 예】
Public Sub MoveCurrentRec() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset
'접속 Set CN = CurrentProject.Connection
'레코드셋을 취득 Set RS = New ADODB.Recordset RS.Open "학생 명부", CN, adOpenKeyset, adLockOptimistic
'참조 Do Until RS.EOF Debug.Print RS!학적 번호, RS!성명 RS.MoveNext Loop
'종료 RS.Close: Set RS = Nothing CN.Close: Set CN = Nothing End Sub
3. Bookmark속성
Recorsset 오브젝트를 작성하면 ,각 레코드에는 자동적으로 고유의 값(이 값을북마크라고 부른다)이 붙이진다.이것에 따라 각 레코드를 식별하는 것이 가능히다.Bookmark 속성은 설정·참조가 가능하고 이것을 사용하고 최신 레코드의 위치를 보존하고 그 레코드에 언제라도 돌아오는 것이 가능하다.북마크는 Recorsset 오브젝트의 Bookmark속성으로 관리되고 있다.
【서식】value = recordset.Bookmark (Bookmark속성의 참조) recordset.Bookmark= value (Bookmark속성의 설정)
recordset:열려 있는 Recorsset 오브젝트 value:북마크(Variant 형태)
【사용 예】
Public Sub MoveBookmark() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Dim bmark As Variant
'접속 Set CN = CurrentProject.Connection
'레코드셋을 취득 Set RS = New ADODB.Recordset RS.Open "학생 명부", CN, adOpenKeyset, adLockOptimistic
'북마크 bmark = RS.Bookmark Debug.Print RS!학적 번호, RS!성명
RS.MoveLast Debug.Print RS!학적 번호, RS!성명
RS.Bookmark = bmark Debug.Print RS!학적 번호, RS!성명
'종료 RS.Close: Set RS = Nothing CN.Close: Set CN = Nothing End Sub |
|
|
<http://www.msaccess.co.kr/onlinele/list/basic/recordeset/ado/ado_8.htm>에서
삽입