이 페이지에서
구문
SQL_DELETE 연결문자열, 테이블이름, WHERE절
인수구분
형식 설명
연결문자열
필수
String
OLEDB(ADO.NET)로 연결할 연결문자열입니다.
테이블이름
필수
String
레코드를 삭제할 테이블 이름입니다.
예를 들어 "users" 와 같이 입력합니다.
WHERE절
필수
String
레코드를 삭제할 행의 WHERE 절을 작성합니다.
예를 들어 "id=1" 과 같이 입력합니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요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
활용 예제
삭제 여부를 확인한 뒤 users 테이블의 레코드 삭제
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_DELETE 는 별도의 안내창 없이 레코드를 즉시 삭제하며 삭제된 데이터는 복구할 수 없으므로, 실행 전에 삭제 여부를 반드시 한 번 더 확인하세요.
SQL_CONN·SQL_EXECUTE·SQL_DELETE_STRING 보조 명령문이 함께 사용되며 위 전체 코드에 포함되어 있습니다.
댓글 1
로그인 후 댓글을 작성할 수 있습니다.
강민준🤗
2024.08.11 13:04
좋은 자료 감사합니다.🙇♂️