[엑셀 VBA] 예약 DB - 1. 엑세스, SQL, Recordset, ListObject 의 상관 관계

작성자
dra****
작성일
2022-07-29 23:31
조회
56

지금은 지인들의 부탁을 받으면, 모두 DB에 넣고,

엑셀은 단말기로만 쓰도록 코딩합니다. 그러면, 엑셀의 데이터가 실수로 지워져도 걱정이 없습니다.

네트워크, 특히, 웹 서버의 DB를 사용하면 언제 어디서나 접근이 가능하기에 그 편리성은 두말할 필요가 없습니다.

아래의 그림은 간단한 개념도 입니다.

 

저는 엑세스, MySQL 등등의 DB에 간편하게 접근하게 하기 위에 class로 만들어 사용하고 있습니다.

'액세스용 전역변수
Private AccessConnStr    As String
Private Conn As ADODB.Connection
Private fgAccessOpened   As Boolean
 
Private Sub Class_Initialize()
    If fgAccessOpened = True Then Exit Sub
    fgAccessOpened = False
 
    AccessConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBPath & ";Persist Security Info=False;"
 
   On Error GoTo Err_AccessOpen
      Set Conn = New ADODB.Connection
      Conn.CursorLocation = adUseClient
      Conn.Open AccessConnStr
 
      fgAccessOpened = True
 
   Exit Sub
Err_AccessOpen:
    fgAccessOpened = False
    Debug.Print "ACCESS OPEN CONNECTION ERROR" & vbNewLine & vbTab & Err.Number & vbNewLine & Err.Description
    MsgBox "ACCESS OPEN CONNECTION ERROR" & vbNewLine & vbTab & Err.Number & ": " & Err.Description, , "ACCESS OPEN CONNECTION ERROR"
 
    Conn.Close
    Set Conn = Nothing
End Sub
 
Private Sub Class_Terminate()
    Call AccessConnectionClose
End Sub
 
Sub AccessConnectionClose()
    If fgAccessOpened = False Then Exit Sub
    fgAccessOpened = False
    Conn.Close
    Set Conn = Nothing
End Sub

실제 코드로 사용하게 위해서 클래스를 인스턴스로 만들어 줍니다.

Dim access As clsAccess
Dim rs As ADODB.Recordset
Set access = New clsAccess
 
Set rs = access.ExecSQL_Recordset(<strong>strSQL</strong>)

자세한 코드는 차후에 설명 하겠습니다.

다음에는 access 테이블 생성에 관한 포스팅을 하겠습니다.

회원등급 : 27레벨
포인트 : 3690 EP
전체 3

  • 2022-08-01 14:43

    @dra**** 님 엑세스가 같은 오피스도구라서 편리하긴 한데 클라우드에 띄워서 공유하지 못하고

    NAS나 네트워크 서버 형태로만 공유되는 것 같더라구요..

    혹시 엑세스 DB도 클라우드에 띄워서 공유하는 방법이 있을까요?


    • 2022-08-01 14:59

      @더블유에이 님 해보지는 않았는데요,

      파일을 열고 닫아야 하는 문제 때문에 클라우드에서 바로 데이터 갱신이 힘들지 않은가 하고 조심스럽게 추측해봅니다.

      엑셀의 경우도 웹에서 바로 열지 않은 이상, 무조건 다운 받아서 처리한 후 업로드하는 과정을 거쳐 자원 낭비가 심합니다.

      나중에 테스트할 기회가 있으면 해보고 알려 드릴게요... ^^


      • 2022-08-02 13:51

        @dra**** 님 아 그렇겠네요 ㅎㅎ 파일을 직접 수정하다보니 동시편집 문제가 있겠군요

        좋은 정보 감사합니다


전체 60
번호 제목 작성자 작성일 추천 조회
알림
[🏆 VBA 4주 완성 특별 스터디] 1기 - 우수 졸업생 및 후기, 축하합니다! (5)
오빠두엑셀 | 2022.07.31 | 추천 7 | 조회 842
오빠두엑셀 2022.07.31 7 842
공지사항
[VBA] 구하라 그러면 주어질 것이다. - VBA 마스터 E-Book (영문판) 첨부파일 (3)
dra**** | 2022.07.19 | 추천 5 | 조회 90
dra**** 2022.07.19 5 90
40590
[엑셀 VBA] 예약 DB - 1. 엑세스, SQL, Recordset, ListObject 의 상관 관계 (3)
dra**** | 2022.07.29 | 추천 3 | 조회 56
dra**** 2022.07.29 3 56
40511
[잡설] 엑셀의 꽃 파워 쿼리를 버리다. (2)
dra**** | 2022.07.29 | 추천 4 | 조회 75
dra**** 2022.07.29 4 75
40321
[경험담..해결했습니다.] &H80004005(-2147467259)시스템오류 (1)
티엠프이 | 2022.07.25 | 추천 2 | 조회 47
티엠프이 2022.07.25 2 47
40074
M365 업데이트 이후 발생하는 H80004005 (-2147467259) 자동화 오류 해결방법
오빠두엑셀 | 2022.07.23 | 추천 0 | 조회 79
오빠두엑셀 2022.07.23 - 79
39608
엑셀 그래프에 관한 유튜브 채널정보 입니다. (2)
레몬네이드 | 2022.07.15 | 추천 -1 | 조회 72
레몬네이드 2022.07.15 -1 72
36473
[엑셀VBA] 시트 이름을 변수로 설정하고 싶을때 간단한 방법 (2)
알파고 | 2022.06.27 | 추천 2 | 조회 141
알파고 2022.06.27 2 141
35196
Print_Area 동적 인쇄 영역설정 첨부파일
sean | 2022.06.21 | 추천 4 | 조회 105
sean 2022.06.21 4 105
34607
셀레니움으로 개별공시지가 조회 첨부파일 (2)
나야 | 2022.06.02 | 추천 1 | 조회 159
나야 2022.06.02 1 159
26273
엑셀 2021, M365 가로스크롤 기능 (20)
더블유에이 | 2022.01.23 | 추천 15 | 조회 642
더블유에이 2022.01.23 15 642
Re:엑셀 2021, M365 가로스크롤 기능
김학동 | 2022.01.23 | 추천 1 | 조회 204
김학동 2022.01.23 1 204
Re:엑셀 2021, M365 가로스크롤 기능
김동희 | 2022.05.30 | 추천 0 | 조회 64
김동희 2022.05.30 0 64
24189
[엑셀 VBA] Snippet - OCR: 이미지 파일을 텍스트 파일로 변환하기 (24)
dra**** | 2021.12.01 | 추천 8 | 조회 1384
dra**** 2021.12.01 8 1384
23999
[엑셀 VBA] Snippet - Public IP, Local IP, Mac Address 구하기 (6)
dra**** | 2021.11.25 | 추천 2 | 조회 512
dra**** 2021.11.25 2 512
23794
[엑셀 VBA] Snippet - 변수를 clipboard로 복사하기 (7)
dra**** | 2021.11.21 | 추천 2 | 조회 622
dra**** 2021.11.21 2 622
23337
HTML 라이브러리 사용하기 귀찮을 때, 사용하는 파싱함수 (getElementsByTag, getAttribute) (8)
오빠두엑셀 | 2021.11.09 | 추천 0 | 조회 357
오빠두엑셀 2021.11.09 - 357
23142
[잡설] 엑셀을 이용한 웹 자동화: SEO 이야기 (19)
dra**** | 2021.11.04 | 추천 8 | 조회 837
dra**** 2021.11.04 8 837
Re:[잡설] 엑셀을 이용한 웹 자동화: SEO 이야기
영일만친구 | 2022.04.25 | 추천 0 | 조회 90
영일만친구 2022.04.25 0 90
22802
[잡설] 웹 서버에서 내보내는 엑셀 파일 및 데이터 이야기 (8)
dra**** | 2021.10.25 | 추천 1 | 조회 491
dra**** 2021.10.25 1 491
22325
[엑셀 VBA] 파워쿼리 자동화 4. CRUD (5)
dra**** | 2021.10.12 | 추천 2 | 조회 760
dra**** 2021.10.12 2 760
22161
[엑셀 VBA] 파워쿼리 자동화 3. MySQL Class (8)
dra**** | 2021.10.07 | 추천 0 | 조회 694
dra**** 2021.10.07 - 694
21839
[엑셀 VBA] 파워쿼리 자동화 2. 자동화 실습 (13)
dra**** | 2021.09.28 | 추천 2 | 조회 716
dra**** 2021.09.28 2 716
21764
[엑셀 VBA] 개체 Reference - QueryTable Object 첨부파일 (2)
dra**** | 2021.09.26 | 추천 0 | 조회 281
dra**** 2021.09.26 - 281
21675
[엑셀 VBA] 파워쿼리 자동화 1. 자동화 순서 (13)
dra**** | 2021.09.23 | 추천 1 | 조회 1856
dra**** 2021.09.23 1 1856