복각 VBA tips 해설

6018 단어 ADOVBAaccess

018. ADO를 사용하여 테이블과 레코드를 삭제하는 방법 : VBA Tips 설명



Delete 메서드



Delete 메서드는 현재 레코드를 삭제하거나 테이블, 테이블 필드 등을 컬렉션에서 삭제하는 메서드입니다. DAO와 ADO 모두 사용할 수 있지만 삭제 가능한 레코드 집합이어야 합니다. 삭제할 테이블이 체인 삭제 관계의 기본 테이블인 경우 현재 레코드를 삭제할 때 외래 키 측 테이블 레코드도 삭제될 수 있습니다.

서식
recordset.Delete

인수


인수
의미
명세


Recordset
열려 있는 Recordset 객체 변수를 지정합니다.
생략 불가



관련 항목
  • CurrentDb 메서드(DAO)
  • TableDefs(DAO)
  • Open(ADO)
  • MoveNext(ADO)

  • $\style{background-color:DodgerBlue;}{사례 )ADO를 사용하여 "주식회사"의 문자가 있는 레코드 삭제}$

    ADO를 사용하여 "주식회사"문자를 가진 레코드를 삭제합니다.


  • 테이블을 만듭니다.
  • ID, 계정 필드를 만듭니다.
  • 연결 양식을 만듭니다.
  • ID, 비즈니스 파트너 텍스트 상자를 만듭니다.
  • 실행할 명령 버튼을 만듭니다.



  • $\style{background-color:DodgerBlue;}{명령 버튼 클릭 시 이벤트 프로시저 만들기}$

    명령 버튼 클릭 시 이벤트 프로시저를 다음과 같이 작성합니다.

    명령 버튼 클릭 시 이벤트 프로시저를 다음과 같이 작성합니다.
    Private Sub 実行_Click()
    
       On Error GoTo エラー
    
       Dim cn As New ADODB.Connection
       Dim rs As New ADODB.Recordset
       Dim strTbl As String
       Dim strMoji As String
       Dim varRet As Variant
    
       Set cn = CurrentProject.Connection
       strTbl = "納入先マスター"
       strMoji = "株式会社"
       rs.Open strTbl, cn, adOpenKeyset, adLockOptimistic
    
       Do Until rs.EOF
      If InStr(rs!取引先, strMoji) <> 0 Then '--- A
       rs.Delete
      End If
      rs.MoveNext
       Loop
    
       Me.Requery '--- B
    
       rs.Close: Set rs = Nothing
       cn.Close: Set cn = Nothing
    
       Exit Sub
    
    エラー:
    
    If Err.Number = -2147217900 Then
       MsgBox "該当するテーブルがありません。"
       Else
       MsgBox Err.Number & " : " & Err.Description
    End If
    
    End Sub
    

    해설



    A.InStr 함수는 지정된 문자를 찾을 수 없을 때 0을 반환합니다.
    B. 삭제한 레코드를 양식에서 제거합니다.

    $\style{background-color:DodgerBlue;}{동작 확인}$
  • 폼을 뷰 모드로 엽니다.
  • 실행 버튼을 클릭합니다.



  • 실행 버튼을 클릭합니다.



  • 좋은 웹페이지 즐겨찾기