[ 엑셀VBA 13] 불량관리 프로그램 만들기 - SQL의 프로그램 적용하기 엑셀VBA 이야기2015. 1. 11. 21:52
[ 엑셀VBA 13] 불량관리 프로그램 만들기 - SQL의 프로그램 적용하기
오랜만에 불량관리 프로그램 13강을 설명을 드리는데 연말이다 연초다 해서 강좌를 올릴 시간이 없어
이제서야 올리는 것을 미안스럽게 생각한다.
자 오늘을 본격적인 SQL의 프로그램 적용 여기서는 전체 입력항목중의 공정별 불량합계를 구해보도록
한다.
우선 상세내용을 먼저 설명해보면 아래의 입력된 데이터베이스로 부터 불량을 조회하여
아래 우측의 불량수량 항목에 공정1,공정2,공정3,공정4에 해당하는 불량수량을 합계 후
불량수량란에 자동으로 입력되는 프로그램이다.
물론, 집게되는 불량수량의 우측상단에 분석이라는 버튼을 누르면 실행이 되는 것이다.
이 프로그램을 만들기 위해서는 데이터베이스 함수인 SQL을 사용설정을 한 후
VBA작성을 해서 데이터를 자동으로 받아 오는 것이다.
시트텝의 코드보기를 통해 아래과 같이 모듈1을 생성한다.
하단에 모듈1의 주기능을 설명하기로 한다.
Sub Analysis() 'Analysis라는 프로시져를 생성한다.
Dim db As Database ' 데이터베이스를 설정한다.
Dim rs As Recordset ' 레코드셋을 설정한다.
Dim str As String ' SQL을 사용하기 위한 문장을 str로 설정한다.
Dim i, j, k ' 변수i,j,k를 설정한다.
Set db = OpenDatabase(ThisWorkbook.Path & "\" & ThisWorkbook.Name, False, True, "Excel 8.0;")
' 엑셀로부터 가져오는 db를 설정한다.
For i = 1 To 4 '반복수를 4까지 증가 데이터를 공정1 부터 공정4까지 넣을 계획임.
str = "SELECT SUM(수량) " ' 모든 수량을 선택
str = str & " FROM [Data$] " ' ' Data라는 이름을 가진 db가 경로이다.
str = str & " WHERE 공정 = '" & ActiveSheet.Cells(4 + i, 7) & "'" '공정은 셀의 값인데 공정1~ 4의 이름이
목적어 이다.
str = str & " AND 처리결과 LIKE '*폐기*' " '처리결과는 폐기항목이다.
Set rs = db.OpenRecordset(str) '레코드셋은 str로 db에 연결한다.
ActiveSheet.Select ' 현재시트를 선택하고
With ActiveSheet
.Cells(4 + i, 8).CopyFromRecordset rs ' 셀에다 1씩증가하면 값을 넣는다.(공정1의 값, 공정2의값...)
End With
rs.Close '레코드셋을 닫고
Set rs = Nothing '레코드셋을 없앤다.
Next i 'i에대한 루프 종료
db.Close 'db를 닫고
Set db = Nothing 'db를 없앤다.
End Sub
불량율관리 프로그램 만들기 시리즈
'엑셀VBA 이야기' 카테고리의 다른 글
[ 엑셀VBA 12 ] 불량관리 프로그램 만들기 - SQL 함수에 대하여 (0) | 2014.12.29 |
---|---|
[ 엑셀VBA 11 ] 불량관리 프로그램 만들기 - 데이터베이스 입력 행삽입 모듈 만들기 (0) | 2014.12.29 |
[ 엑셀VBA 10 ] 불량관리 프로그램 만들기 - 분석툴 만들기 (0) | 2014.12.26 |
[ 엑셀VBA 9 ] 불량관리 프로그램 만들기 - 엑셀 데이터베이스 사용 설정 (1) | 2014.12.21 |
[ 엑셀VBA 8 ] 불량관리 프로그램 만들기 - 이중 유효성검사 (0) | 2014.12.20 |