드로우홀릭 더베이직

엑세스 조회 폼 만들기 질문 드립니다.

2017.07.17 13:16:09 조회 수 23833 추천 수 0

안녕하세요. 액세스 공부하고 있는 직장인입니다.


아래 답변 정말 감사합니다.


감의도 참고하겠습니다.


매출전표 매입전표 관리 조회 폼 만들어서 사용하려고 하는데요.


전표구분 조건 & 날짜조건 다 검색해서 사용할 수 있는 구문이 있을까요.


궁금합니다.


파일첨부하오니 확인부탁드립니다.




profile

윈드님

2017.07.17 16:03:20
*.149.161.117

일단 원하시는 검색 방법이 날짜조건은 필수이고 전표구분은 필수인지 아닌지 몰라서 제 임의대로 해 보았습니다.


이 코드의 가장 중요한 점은 ConSQL에 기본 구문 + 'WHERE 1=1' 을 추가하여 뒤에 붙는 조건을 동적으로 처리한다는 점 입니다.

WHERE  1=1 이 없다면 처음 시작하는 조건문인지를 확인하여 처음 시작하는 조건문은 앞에 AND 를 사용하지 않아야 하는데, 이 부분을 코드로 구현하기가 힘들 것 입니다. 아래와 같은 방법을 사용하면 간단하게 구현 할 수 있습니다.


    Dim strSQL As String
    Dim strWhere As String
   
    Const ConSQL = "SELECT 거래일 FROM 출입고내역 WHERE 1=1 "       '여기서 기본 구문을 선언합니다. 이유는 날짜 와 구분 조건 중에 값이 없으면 그 부분은 필터에서 빠져야 하기 때문입니다. WHERE  1=1 은 쿼리를 동적으로 구현하기 위한 꼼수입니다. 이 뒤에는 And ... 로 계속 동적으로 조건을 붙일 수 있기 때문입니다.
    
    '1. 날짜에 값이 있을 때 조회조건에 추가 (값이 없는 경우 조회조건에 추가시키지 않는다.)
    If Nz(Me.txt시작일, "") <> "" Then
        If Nz(Me.Txt종료일, "") <> "" Then
            strWhere = " AND [거래일] >= #" & Me.txt시작일 & "# And [거래일] <= #" & Me.Txt종료일 & "#"
        Else
            'MsgBox "종료일을 입력하세요."
            'exit sub
        End If
    Else
        'msgBox "시작일을 입력하세요
        'Exit Sub
    End If


    '2. 전표구분 관련 조회조건에 추가( 이 역시 전표구분에 값이 없으면 조회조건에 추가 자체를 하지 않습니다.)
    If Nz(Cmb전표구분, "") <> "" Then
        strWhere = strWhere & " AND 전표구분 = '" & Me.Cmb전표구분 & "'"
    Else
        'MsgBox "전표구분 을 입력하세요."
        'exit sub
    End If
   

'3. 정의한 조회 조건 구문 생성
    strSQL = ConSQL & " " & strWhere
   
    DoCmd.ApplyFilter strSQL




첨부
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 FAQ: 어떤 과정을 수강하는 것이 좋을까요? 외 돌직구 2017-08-29 31951
공지 좋은 답변을 이끌어 내는 방법 [1] 돌직구 2017-07-14 28100
공지 액세스 Q/A 게시판 형식을 변경합니다. 돌직구 2014-09-10 23150
520 특정 테이블의 필드 값을 다른 테이블로 옮기는 작업 1 1 thedream77 2014-12-18 45934
519 하나의 폼에서 데이터 입력 및 조회 구현 file 1 park 2018-08-22 45645
518 한 필드에서 여러개의 같은 데이터중 한개의 데이터만 가져오는 방법 2 백두산 2020-06-05 43190
517 추가쿼리에서 키위반 오류 문의드립니다 file 3 1 박형근 2022-07-17 36407
516 엑세스로 재고관리대장을 만들계획입니다. 2 1 똥구녕멍멍 2019-04-18 32630
515 외부데이터 "가져오기 오류 - 형식변환실패"의 의미는~? file 1 1 방랑김사깟 2017-02-19 32291
514 액셀의 데이타(하이퍼링크)를 복사해서 기존의 액세스 테이블에 붙이기 file 3 1 광야에서살아남기 2015-08-21 31378
513 이벤트 에러 file 4 1 엑세스29 2017-06-15 29766
512 엑세스 데이터베이스 일관성 에러 문의 1 박상순 2021-02-22 28716
511 목록상자 클릭시 클릭한 COL, ROW의 값 vb로 받아오기 2 쐬주도사 2017-12-15 28333
510 메시지박스의 체크박스로 테이블의 체크박스 컨트롤하기 1 공잇 2016-04-07 28049
509 엑셀파일 불러오기 오류 문의 file 3 기영주 2016-02-16 27753
508 vba에서 날짜 포멧 변환 질문드립니다. 1 1 쐬주도사 2017-12-18 27249
507 액세스 데이터베이스 딜레이 및 멈춤 문제 file 1 3 전맥 2016-10-11 26759
506 리스트박스의 선택된값을 해제 하려면 어떻게해야하나요, 1 김은교 2016-01-16 26164
505 통화 필드에 단위($ 또는 \)표시가 저장 안 되게 할 수 있을까요? 3 클로이 2019-07-04 26109
504 입력식에 유호하지 않는 날짜값이 있습니다. 2 sky3300 2019-03-26 25234
503 액세스 DB 파일 용량 문제 문의 드립니다. 4 바남풍 2019-08-26 25015
502 사진이나 그림 삽입 방법 1 notebook01 2016-05-01 25010
501 텍스트 가져오는 데 문제가 생겨요. 1 당연히나지 2021-01-24 24466


  주소  12925 경기도 하남시 미사대로 540, B동 917호 (현대지식산업센터 한강미사2차) ㈜팀데이터이십일  |  고객센터 전화번호  02-467-2998  |  대표이사  염기웅
개인정보관리책임자  염기웅 (ml_privacy@td21.com)  |  사업자등록번호  120-86-79260  |  통신판매업신고번호  제 2021-경기하남-1166 호  [사업자 정보 확인]
  TD21의 사전 서면 동의 없이 TD21 사이트 일체의 정보, 콘텐츠 및 UI 등을 상업적 목적으로 전시, 전송, 스크래핑 등 무단 사용할 수 없습니다.