엑셀 SQL 레코드 삭제 :: SQL_DELETE 명령문 예제

엑셀에서 SQL DELETE 쿼리를 실행하여 레코드를 삭제하는 VBA 명령문의 전체 코드와 사용법을 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2022. 05. 26. 15:30
URL 복사
메모 남기기 : (1)

엑셀 SQL 레코드 삭제 :: SQL_DELETE 명령문 사용법 총정리

엑셀 SQL_DELETE 명령문 목차 바로가기
요약

엑셀에서 SQL DELETE 쿼리를 실행하여 레코드를 삭제합니다.

명령문 구문
SQL_DELETE 연결문자열, 테이블이름, WHERE절
사용된 인수 및 변수 알아보기
인수 설명
연결문자열
[String]
OLEDB(ADO.NET)로 연결할 연결문자열입니다.
테이블이름
[String]
레코드를 삭제 테이블 이름입니다.
예) "users"
WHERE절
[String]
레코드를 삭제할 행의 WHERE 절을 작성합니다.
예) "id=1"

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.


상세 설명

SQL_DELETE 함수는 엑셀에서 SQL DELETE 쿼리를 실행하여 특정 레코드를 삭제하는 함수입니다.

SQL_DELETE 함수는 별도의 안내창 없이 레코드를 즉시 삭제하며, 삭제된 데이터는 복구가 불가능합니다. 따라서 SQL_DELETE 함수를 실행하기 전에는 반드시 삭제 여부를 한번 더 확인한 후 쿼리를 실행하는 것이 좋습니다.

본 함수의 인수로 테이블이름, WHERE절을 차례대로 작성하면, SQL DELETE 쿼리문은 아래와 같이 작성됩니다. SQL DELETE 쿼리에 대한 자세한 설명은 관련 링크를 참고하세요.

DELETE FROM 테이블이름 WHERE WHERE절;
실전 사용 예제
  1. 삭제여부 확인 후, [예] 버튼 클릭 시 users 테이블에서 id가 1인 레코드 삭제하기
    Dim vbYN As VbMsgBoxResult
    Dim ConnString As String
    ConnString = "Server=database.windows.net,1433;User ID=xxxx..."
     
    vbYN = MsgBox("데이터를 정말로 삭제하시겠습니까?", vbYesNo)
    If vbYN = vbNo Then Exit Sub
    SQL_DELETE ConnString, "users", "id=1"

엑셀 SQL 레코드 삭제, SQL_DELETE 명령문 동작원리

SQL_DELETE 명령문 전체 코드
Sub SQL_DELETE(Connection As String, Table As String, Where As String)
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ SQL_DELETE
'▶ SQL 서버에 연결 후 특정 행의 데이터를 삭제합니다.
'▶ 인수 설명
'_____________Connection      : SQL OLE DB로 연결할 연결문자열(Connection String)을 입력합니다.
'_____________Table                : DB 중 데이터를 Delete 할 테이블 이름입니다.
'_____________Where               : Delete 할 Row의 Where 절을 작성합니다.
'▶ 사용 예제
'SQL_DELETE "Server=database.windows.net,1433;User ID=oppadu;Password=123;", "테이블명", "필드=조건"
'■ 사용된 보조명령문
'SQL_CONN
'SQL_EXECUTE
'SQL_DELETE_STRING
'###############################################################
Dim DB As Object
Set DB = SQL_CONN(Connection)
SQL_EXECUTE DB, SQL_DELETE_STRING(Table, Where)
End Sub
 
Function SQL_DELETE_STRING(Table As String, Where As String) As String
SQL_DELETE_STRING = "DELETE FROM " & Table & " WHERE " & Where & ";"
End Function
 
Sub SQL_EXECUTE(DB As Object, SQL_STRING As String)
On Error GoTo EH_CONN:
DB.Execute (SQL_STRING)
Exit Sub
EH_CONN:
    MsgBox "쿼리를 실행하는 도중 오류가 발생했습니다." & vbNewLine & _
                    "오류 번호 : " & Err.Number & vbNewLine & "오류 내용 : " & Err.Description, vbInformation
    End
End Sub
 
Function SQL_CONN(CONN_STRING As String) As Object
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ SQL_CONN
'▶ SQL 연결 문자열로 OLE DB 연결 후 ADODB 커넥션 개체를 반환합니다.
'▶ 인수 설명
'_____________Connection              : SQL OLE DB로 연결할 연결문자열(Connection String)을 입력합니다.
'▶ 사용 예제
'Dim DB As Object
'Set DB = SQL_CONN("Server=database.windows.net,1433;User ID=oppadu;Password=123;")
'###############################################################
 
Dim DB As Object
Set DB = CreateObject("ADODB.Connection")
 
If InStr(1, CONN_STRING, "Provider=", vbTextCompare) = 0 Then CONN_STRING = "Provider=SQLOLEDB;" & CONN_STRING
 
On Error GoTo EH_CONN:
DB.ConnectionTimeout = 3
DB.Open CONN_STRING
 
If DB.State = 1 Then
    Set SQL_CONN = DB
Else
    GoTo EH_CONN
End If
 
Set DB = Nothing
 
Exit Function
 
EH_CONN:
    MsgBox "서버에 연결할 수 없습니다." & vbNewLine & "인터넷 연결 또는 서버 상태를 확인하세요.", vbInformation
    Set DB = Nothing
    End
End Function
명령문 동작원리 단계별 알아보기
  1. 연결문자열을 참조하여 서버에 연결합니다.
    Dim DB As Object
    Set DB = SQL_CONN(Connection)
  2. 받아온 테이블이름과 WHERE절로 DELETE 쿼리문을 작성합니다.
    SQL_DELETE_STRING(Table, Where)
  3. DELETE 쿼리를 실행하여 레코드를 삭제합니다.
    SQL_EXECUTE DB, SQL_DELETE_STRING(Table, Where)
5 1 투표
게시글평점
1 댓글
Inline Feedbacks
모든 댓글 보기
1
0
여러분의 생각을 댓글로 남겨주세요.x