[엑셀 VBA] 예약 DB - 1. 엑세스, SQL, Recordset, ListObject 의 상관 관계
작성자
dra****
작성일
2022-07-29 23:31
조회
674
지금은 지인들의 부탁을 받으면, 모두 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 테이블 생성에 관한 포스팅을 하겠습니다.
전체 74
번호 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚교재 출간 안내] 「진짜쓰는 실무엑셀」 , 드디어 출간되었습니다! (179)
![]() ![]() |
![]() ![]() |
2022.02.03 | 469 | 184806 | |
공지사항 |
[VBA] 구하라 그러면 주어질 것이다. - VBA 마스터 E-Book (영문판)
![]()
dra****
|
2022.07.19
|
추천 10
|
조회 772
|
![]() |
2022.07.19 | 10 | 772 |
45662 |
선택된 범위 정렬 단축키
(20)
![]() |
![]() |
2022.12.15 | 5 | 523 |
44293 |
[엑셀 VBA] 예약 DB - 9. 시트의 바우처&견적서 양식에 데이터 뿌리기
(15)
![]() |
![]() |
2022.11.11 | 4 | 888 |
![]()
blue_0313
|
2023.03.21
|
추천 0
|
조회 69
|
blue_0313 | 2023.03.21 | 0 | 69 | |
44227 |
[엑셀 VBA] 예약 DB - 8. Listbox 와 폼 컨트롤 연동하고 DB로 보내기
(1)
![]() |
![]() |
2022.11.09 | 3 | 566 |
44219 |
[엑셀 VBA] 예약 DB - 7. MySQL 클래스와 사용법
(3)
![]() |
![]() |
2022.11.09 | 2 | 513 |
43438 |
[엑셀 VBA] 예약 DB - 6. 폼 콘트롤과 DB 필드명 일치시키기
![]() |
![]() |
2022.10.21 | 2 | 310 |
43292 |
[엑셀 VBA] 예약 DB - 5. makeSQL() 함수 - INSERT, UPDATE문 자동 생성
(7)
![]() |
![]() |
2022.10.18 | 3 | 533 |
43091 |
[엑셀 VBA] 예약 DB - 4. 표 가지고 놀기
(17)
![]() |
![]() |
2022.10.13 | 1 | 695 |
43017 |
[엑셀 VBA] 예약 DB -3. 표(테이블, ListObject)을 사용해야 하는 이유1
(15)
![]() |
![]() |
2022.10.11 | 2 | 580 |
42998 |
[잡설] 엑셀이 웹으로 가야하는 이유2
(11)
![]() |
![]() |
2022.10.10 | 5 | 826 |
![]()
tin
|
2023.01.12
|
추천 0
|
조회 161
|
tin | 2023.01.12 | 0 | 161 | |
42982 |
[엑셀 VBA] 예약 DB - 2. 다시 웹으로 - Access에서 MySQL로 데이터 이식
![]() |
![]() |
2022.10.10 | 2 | 395 |
40590 |
[엑셀 VBA] 예약 DB - 1. 엑세스, SQL, Recordset, ListObject 의 상관 관계
(9)
![]() |
![]() |
2022.07.29 | 3 | 674 |
![]()
tin
|
2023.01.12
|
추천 0
|
조회 107
|
tin | 2023.01.12 | 0 | 107 | |
40511 |
[잡설] 엑셀의 꽃 파워 쿼리를 버리다.
(5)
![]() |
![]() |
2022.07.29 | 5 | 1152 |
40321 |
[경험담..해결했습니다.] &H80004005(-2147467259)시스템오류
(4)
![]() |
![]() |
2022.07.25 | 2 | 732 |
40074 |
M365 업데이트 이후 발생하는 H80004005 (-2147467259) 자동화 오류 해결방법
![]() ![]() |
![]() ![]() |
2022.07.23 | 1 | 511 |
39608 |
엑셀 그래프에 관한 유튜브 채널정보 입니다.
(16)
![]() |
![]() |
2022.07.15 | - | 395 |
36473 |
[엑셀VBA] 시트 이름을 변수로 설정하고 싶을때 간단한 방법
(3)
![]() |
![]() |
2022.06.27 | 2 | 1705 |
35196 |
Print_Area 동적 인쇄 영역설정
![]() ![]() |
![]() |
2022.06.21 | 4 | 1800 |
34607 |
셀레니움으로 개별공시지가 조회
![]() ![]() |
![]() |
2022.06.02 | 2 | 452 |
26273 |
엑셀 2021, M365 가로스크롤 기능
(39)
![]() ![]() |
![]() ![]() |
2022.01.23 | 17 | 1295 |
![]()
김학동
|
2022.01.23
|
추천 1
|
조회 353
|
김학동 | 2022.01.23 | 1 | 353 | |
![]()
김동희
|
2022.05.30
|
추천 0
|
조회 200
|
김동희 | 2022.05.30 | 0 | 200 | |
24189 |
[엑셀 VBA] Snippet - OCR: 이미지 파일을 텍스트 파일로 변환하기
(28)
![]() |
![]() |
2021.12.01 | 8 | 3516 |
![]()
tin
|
2023.01.12
|
추천 0
|
조회 90
|
tin | 2023.01.12 | 0 | 90 |
@dra**** 님 좋은 정보 감사합니다
@dra**** 님 감사합니다
@dra**** 님 엑세스가 같은 오피스도구라서 편리하긴 한데 클라우드에 띄워서 공유하지 못하고
NAS나 네트워크 서버 형태로만 공유되는 것 같더라구요..
혹시 엑세스 DB도 클라우드에 띄워서 공유하는 방법이 있을까요?
@더블유에이 님 해보지는 않았는데요,
파일을 열고 닫아야 하는 문제 때문에 클라우드에서 바로 데이터 갱신이 힘들지 않은가 하고 조심스럽게 추측해봅니다.
엑셀의 경우도 웹에서 바로 열지 않은 이상, 무조건 다운 받아서 처리한 후 업로드하는 과정을 거쳐 자원 낭비가 심합니다.
나중에 테스트할 기회가 있으면 해보고 알려 드릴게요... ^^
@dra**** 님 아 그렇겠네요 ㅎㅎ 파일을 직접 수정하다보니 동시편집 문제가 있겠군요
좋은 정보 감사합니다
@dra**** 님 안녕하세요 저도 궁금했던 내용인데요. 설명해 주신 내용에 보면 웹서버에선 가능하다고 하셨는데 웹서버와 클라우드는 개념이 다른 건가요? 네트워크에 대해서 초보라 문의드리는 점 양해바랍니다.
@dra**** 님 @dra**** 님 감사합니다!
@dra**** 님 오..좋은 정보 감사합니다.
@dra**** 님 ^^