http://cafe.naver.com/excelmaster/132638
시트1에 DB가 있고
시트2에서 기간 및 출발동 조건을 주어 검색버튼을 누르면
조건에 해당하는 결과값을 출력해주는 SQL
+ 결과 출력 시트 +
+ DB 시트 +
Option Explicit Sub Macro() Dim ADO_Connect As New ADODB.Connection Dim ADO_Record As New ADODB.Recordset Dim sql As String Dim ExcelVersion As Integer Dim OLEDB_Connect As String Dim FirstDay As Date Dim LastDay As Date Dim StartDong As String '파일 버전을 확인하여 OLEDB를 사용할 버전을 정합니다. 'ADO에 기본으로 들어가는 내용입니다. Select Case Application.Version Case Is <= 11: ExcelVersion = 8 Case Is >= 12: ExcelVersion = 12 Case Else MsgBox "엑셀 버전을 확인해주세요" Exit Sub End Select OLEDB_Connect = "Provider=Microsoft.Ace.OLEDB.12.0;" & _ "Data Source='" & ThisWorkbook.FullName & "';" & _ "Extended Properties =""Excel " & ExcelVersion & ".0 xml; HDR = YES"";" '기존자료 삭제 및 변수설정 Range("A8").CurrentRegion.Offset(1).ClearContents FirstDay = Range("B3") LastDay = Range("D3") StartDong = Range("B4") 'SQL을 지정합니다. sql = "select 접수일자, 출발동, 도착동, 총금액, 세금계산서 from [Sheet1$] " '시트1에서 원하는 자료만 가져옵니다. sql = sql & "where 출발동=""" & StartDong & """" '출발동을 지정합니다. sql = sql & " and 접수일자 between #" & FirstDay & "# and #" & LastDay & "#" '검색 날짜를 지정합니다. 'ADO 및 레코드셋에 ADO_Connect ADO_Connect.Open OLEDB_Connect ADO_Record.Open sql, ADO_Connect, 3, 3, 1 'A9셀에 검색 결과를 출력합니다. 검색결과가 없으면 공란을 출력합니다. Range("A9").CopyFromRecordset ADO_Record '변수 초기화 ADO_Record.Close ADO_Connect.Close Set ADO_Record = Nothing Set ADO_Connect = Nothing End Sub | cs |
'VB(A)' 카테고리의 다른 글
주민번호로 만나이 구하기(외국인 포함) (0) | 2016.12.03 |
---|---|
빨간 글자를 찾아 대괄호 입히기 (0) | 2016.12.02 |
[ADO] 중복제거 후 합계 (0) | 2016.11.16 |
[ADO] 매장별 담당자 현황 출력 (0) | 2016.11.16 |
[ADO] 원하는 항목만 검색하여 별도의 시트에 출력하기 (0) | 2016.11.16 |