http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=264399542
F3에서 제품명을 변경하면 그에 맞는 제품원가의 최대값을 불러오는 ADO.
SQL을 공부하고 엑셀에 접목시켜보았다.
역시 책으로만 보는 것과 직접 짜보는 것은 차이가 있네.
Option Explicit Sub Macro() Dim 연결 As New ADODB.Connection Dim OLEDB_Connect As String Dim FilePath As String Dim rS As New ADODB.Recordset Dim sql As String '파일 버전을 확인하여 OLEDB를 사용할 버전을 정합니다. FilePath = ThisWorkbook.FullName Select Case Application.Version Case Is <= 11 OLEDB_Connect = "Provider=Microsoft.Ace.OLEDB.12.0;" & _ "Data Source='" & FilePath & "';" & _ "Extended Properties =""Excel 8.0 xml; HDR = YES"";" Case Is >= 12 OLEDB_Connect = "Provider=Microsoft.Ace.OLEDB.12.0;" & _ "Data Source='" & FilePath & "';" & _ "Extended Properties =""Excel 12.0 xml; HDR = YES"";" Case Else MsgBox "엑셀 버전을 확인할 수 없습니다" End Select 'SQL을 지정합니다. sql = "select max(제품원가)" '제품원가 중 최대값을 가져옵니다. sql = sql & " from [22$B6:H" & Cells(Rows.Count, "H").End(3).Row - 1 & "]" '테이블의 범위를 지정합니다. sql = sql & " where 제품='" & Range("F3") & "'" '어떤 제품의 제품원가 최대값을 가져올 건지 정합니다. 'ADO 및 레코드셋에 연결 연결.Open OLEDB_Connect rS.Open sql, 연결, 3, 3, 1 'F4셀에 최대값을 출력합니다. Range("F4") = rS.Fields.Item(0) '변수 초기화 rS.Close 연결.Close Set rS = Nothing Set 연결 = Nothing End Sub | cs |
'VB(A)' 카테고리의 다른 글
[ADO] 매장별 담당자 현황 출력 (0) | 2016.11.16 |
---|---|
[ADO] 원하는 항목만 검색하여 별도의 시트에 출력하기 (0) | 2016.11.16 |
다른시트의 데이터 검색하여 출력하기 (2) | 2016.10.30 |
글자나누기 - Split, 정규식 (0) | 2016.10.30 |
시간별 그룹(피벗테이블) (0) | 2016.10.30 |