데이터 쿼리연결이 계속 늘어납니다

VBA
작성자
vaipor
작성일
2021-01-31 23:27
조회
85

위와 같이 Access DB에서 데이터를 읽어 오는 프로시저(Sub Read_info)를
조회, 수정, 삭제모드 버튼을 클릭할 시
Call Read_info
를 통해 실행시켰습니다

 

등록모드와 조회, 수정, 삭제모드 버튼을 번갈아 눌렀더니
연결이 계속 추가됩니다

Read_info 프로시저를 버튼에 연결하지 않고 단독으로 실행시켰을 경우에는 연결이 더 추가 되지 않았습니다.

아래는 사용 코드 입니다

연결이 계속 추가되는 원인과 해결방법 부탁드리겠습니다..ㅠㅠ


VBA나 DB 이해도가 많이 떨어지는 거 같습니다 ㅠㅠ

일단은 쿼리를 셀에 연결하지 않고 구조체로 받아서 셀에 뿌려주는 방식으로 바꾸었는데

왜 연결이 계속 늘어난 건지는 아직 해답을 찾지 못 했습니다..

혹시 이와 관련한 설명이나 참고자료 추천 해주시면 정말 감사하겠습니다

Option Explicit
 
Public Sub Read_info()
 
    Dim 연결 As New ADODB.Connection
    Dim 레코드셋 As New ADODB.Recordset
    Dim OLEDB As String
    Dim 경로 As String
    Dim DB As String
    Dim 메시지 As String
    Dim 반환위치 As Range
    Dim 물류회사 As String
    Dim SQL As String
    물류회사 = "모름"
 
    경로 = ThisWorkbook.Path & "\"
    DB = "total_management.accdb"
 
    Set 반환위치 = Sheet1.Range("N4")
 
    If Len(반환위치.Value) > 0 Then
 
        반환위치.CurrentRegion.Delete Shift:=xlUp
        Set 반환위치 = Range("N4")
 
    End If
 
    OLEDB = "Provider=Microsoft.Ace.OLEDB.12.0;" & _
            "Data Source='" & 경로 & DB & "';" & _
            "User Id=admin;Password=;"
 
    연결.Open OLEDB
 
    SQL = SQL & "SELECT 입항일, BL, 통관회사명, MARK, 품명, CT, CBM, 박스사이즈, 창고배정 "
    SQL = SQL & "FROM 물류입고 "
    SQL = SQL & "WHERE 물류회사 = '" & 물류회사 & "'"
 
        레코드셋.Open Source:=SQL, _
                      ActiveConnection:=연결, _
                      CursorType:=adOpenStatic
 
    If 레코드셋.RecordCount > 0 Then
        With ActiveSheet.QueryTables.Add(Connection:=레코드셋, _
                                         Destination:=반환위치)
            .FieldNames = False
            .AdjustColumnWidth = False
            .Refresh BackgroundQuery:=True
            With .ResultRange
 
                .BorderAround LineStyle:=xlContinuous
                .HorizontalAlignment = xlCenter
            End With
 
        End With
 
    Else
 
        MsgBox "가져올 데이터가 없습니다."
 
    End If
 
    레코드셋.Close
 
 
 
    연결.Close
 
End Sub
Private Sub RUD_option_Click()
    Call Refresh_All
    Sheet1.Initialization_All.Visible = False
    Sheet1.btn_Insert_info.Visible = False
    Sheet1.TextBox1.Visible = False
    Sheet1.TextBox2.Visible = False
    Sheet1.TextBox3.Visible = False
    Sheet1.ComboBox1.Visible = True
    Sheet1.Shapes("직사각형 71").Visible = True
    Cells(1, "J").BorderAround LineStyle:=xlContinous, Weight:=xlThin
    Cells(1, "J").RowHeight = 40
    Call Read_info
    Call ComboBox1_Initialize
    Sheet1.btn_filter1.Visible = True
    Sheet1.TextBox4.Visible = True
    'Cells(1, "L") = ComboBox1.Value
 
 
End Sub

 

전체 2

  • 2021-02-01 21:12
    채택된 답변

    안녕하세요.

    작성하신 명령문 중

    ActiveSheet.QueryTables.Add(Connection:=레코드셋, _
                                             Destination:=반환위치)

    구문은 워크시트에 쿼리를 새롭게 추가하는 구문입니다. 기존 쿼리 존재여부에 상관없이 새로운 쿼리가 누적되어 생성됩니다.

    따라서 Access에서 데이터를 불러오신다면, 쿼리를 추가하는 것 대신, 기존 쿼리가 연결된 데이터베이스에 새로운 레코드를 값으로 추가하는 방법으로 접근하시는게 좋습니다.

    만약 기존 데이터 <> 새로운 데이터 구분이 어려울 경우, 기존 쿼리를 삭제하신 뒤 새로운 쿼리를 추가하는 방법으로 문제를 해결해보세요.

    해결방법은 여러가지가 있겠지만, Access를 활용하신다면 시트 안에 쿼리를 추가하는 것이 아니라 Access에서 바로 데이터를 끌어오는 방법으로 해결하시는게 가장 편리할 듯 합니다.

    https://stackoverflow.com/questions/7842607/how-to-query-a-ms-access-table-from-ms-excel-2010-using-vba

    위 링크를 참고해보세요.

    제시해드린 답변이 도움이 되셨길 바랍니다. 감사합니다.


    • 2021-02-01 22:14

      답변 너무 감사드립니다!

      쉬운 문제를 주의력이 부족해 놓친 듯 합니다ㅠㅠ
      VBA 공부와 데이터베이스 공부도 병행하여 더 정진하겠습니다
      감사합니다


전체 2,458
번호 카테고리 제목 작성자 작성일 추천 조회
2449 차트/그래프
New 간트차트 자동화 양식에 문의 사항
kuh**** | 13:26 | 추천 0 | 조회 5
kuh**** 13:26 0 5
2448 문서서식
New 쿠쿠님 VLOOKUP 사용에 대해서 자세히 설명좀 부탁드립니다. 첨부파일 (3) 답변완료
kp96**** | 01:13 | 추천 0 | 조회 26
kp96**** 01:13 0 26
2447 VBA
New Get_Balance 함수 소수점 계산
새우튀김 | 2021.03.01 | 추천 0 | 조회 28
새우튀김 2021.03.01 0 28
2446 VBA
New 피벗테이블 자동업데이트 명령문 (1) 답변완료
Truman Kim | 2021.03.01 | 추천 0 | 조회 32
Truman Kim 2021.03.01 0 32
2445 문서서식
New vlookup을 어떻게 사용해야 하나요? 첨부파일 (3) 답변완료
kp96**** | 2021.02.28 | 추천 0 | 조회 66
kp96**** 2021.02.28 0 66
2444 기능/도구
New 여러 시트에서 어떠한 표를 동기화 시키고 싶습니다. (1) 답변완료
naver_5fcf626b3f9b3 | 2021.02.27 | 추천 0 | 조회 41
naver_5fcf626b3f9b3 2021.02.27 0 41
2443 함수/공식
New [ ]나 { }같은 특정부호를 각자 다른 단어에 한꺼번에 넣고 싶습니다 첨부파일 (1)
이성용 | 2021.02.27 | 추천 0 | 조회 35
이성용 2021.02.27 0 35
2442 VBA
VB offset.resize.value 사용시 빈셀 포함해서 복사 할 수 있는 방법이 있나요? (1)
darkblling | 2021.02.26 | 추천 0 | 조회 36
darkblling 2021.02.26 0 36
2441 문서서식
셀을 전체 새로고침 하는 기능이 있나요? (4)
STA | 2021.02.26 | 추천 0 | 조회 51
STA 2021.02.26 0 51
2440 VBA
여러조건있는 데이터복사 첨부파일 (1)
sevenhills | 2021.02.26 | 추천 0 | 조회 42
sevenhills 2021.02.26 0 42
2439 기능/도구
날짜 표시형식에 "주"표시 (2)
세이클럽 | 2021.02.26 | 추천 1 | 조회 41
세이클럽 2021.02.26 1 41
2438 VBA
엑셀 vba 파일 불러들일때 무한 루프 벗어나기 (3) 답변완료
손님 | 2021.02.26 | 추천 0 | 조회 37
손님 2021.02.26 0 37
2437 기능/도구
[DuTool] HomeTaxBR 함수 문의 (1)
hikary | 2021.02.26 | 추천 1 | 조회 32
hikary 2021.02.26 1 32
2436 VBA
VBA 반복구문 줄이는 방법 (1) 답변완료
H.B | 2021.02.26 | 추천 1 | 조회 39
H.B 2021.02.26 1 39
2435 VBA
이동거리에 따른 출장비 자동 계산 시트 구성 질의 (1)
윤여진 | 2021.02.26 | 추천 0 | 조회 33
윤여진 2021.02.26 0 33
2434 기능/도구
네이버 검색광고 액셀 (1)
빵원카 | 2021.02.26 | 추천 0 | 조회 45
빵원카 2021.02.26 0 45
2433 VBA
함수를 dll로 변환시 Source code가 숨겨지나여? (1)
손님 | 2021.02.26 | 추천 0 | 조회 27
손님 2021.02.26 0 27
2432 문서서식
다중 유효성 검사 도와 주세요 첨부파일 (2) 답변완료
shin**** | 2021.02.26 | 추천 0 | 조회 41
shin**** 2021.02.26 0 41
2431 VBA
VBA .CurrentRegion.AdvancedFilter xlFilterCopy 메소드? 설명가능하신분!!! (2) 답변완료
새우튀김 | 2021.02.25 | 추천 0 | 조회 33
새우튀김 2021.02.25 0 33
2430 함수/공식
조건부 서식을 사용하여 홀수날에만 적용하기 (2) 답변완료
모찌율 | 2021.02.25 | 추천 0 | 조회 35
모찌율 2021.02.25 0 35
2429 함수/공식
offset함수 입니다 첨부파일 (3) 답변완료
khj**** | 2021.02.25 | 추천 0 | 조회 55
khj**** 2021.02.25 0 55
2428 함수/공식
OFFSET 함수 문의드립니다 (3) 답변완료
권보스 | 2021.02.25 | 추천 1 | 조회 57
권보스 2021.02.25 1 57
2427 함수/공식
페이지 수 자동 으로 나오는 함수 있을까요? (1)
유리비 | 2021.02.25 | 추천 0 | 조회 43
유리비 2021.02.25 0 43
2426 피벗테이블
피벗테이블로 트리맵 차트 그리는 방법이 있을까요? (2) 답변완료
용쳐리 | 2021.02.25 | 추천 0 | 조회 33
용쳐리 2021.02.25 0 33
2425 VBA
입력된 여러가지 숫자들 조합해서 일치하는 값이나 가장 근사치를 찾는 방법 (1)
이주 | 2021.02.25 | 추천 0 | 조회 28
이주 2021.02.25 0 28
2424 함수/공식
엑셀 OFFSET 함수 사용법 관련입니다. (2)
모모네 집 | 2021.02.25 | 추천 1 | 조회 47
모모네 집 2021.02.25 1 47
2423 피벗테이블
슬라이서 연동 문제 (한 개 슬라이서로 2개 테이블을 원본으로 하는 피벗테이블 컨트롤하기) (1)
밥상달려 | 2021.02.24 | 추천 1 | 조회 29
밥상달려 2021.02.24 1 29
2422 VBA
VBA 배열 질문 (2) 답변완료
hanikr | 2021.02.24 | 추천 0 | 조회 41
hanikr 2021.02.24 0 41
2421 VBA
중복되는 데이터때문에 입력값이 제대로 입력되지 않습니다. (2) 답변완료
sinbal | 2021.02.24 | 추천 0 | 조회 32
sinbal 2021.02.24 0 32
2420 함수/공식
countifs 관련 문의 입니다. (1)
엑신이되자 | 2021.02.24 | 추천 1 | 조회 59
엑신이되자 2021.02.24 1 59