아래는 엑셀 스키마를 기반으로 데이터 검증을 수행하는 VBA 스크립트입니다. 각 열에 대해 데이터 유형, 필수 여부, 최대 길이 등을 검사합니다. 필요에 맞게 확장할 수 있습니다.

Sub ValidateData()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim errorMsg As String

    ' 데이터가 있는 워크시트 설정
    Set ws = ThisWorkbook.Sheets("Data") ' 데이터 시트 이름

    ' 마지막 데이터 행 찾기
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    errorMsg = ""

    ' 데이터 검증 루프
    For i = 2 To lastRow ' 2번째 행부터 시작 (헤더 제외)
        Dim id As String
        Dim name As String
        Dim age As String
        Dim email As String
        Dim regDate As String

        ' 데이터 읽기
        id = ws.Cells(i, 1).Value
        name = ws.Cells(i, 2).Value
        age = ws.Cells(i, 3).Value
        email = ws.Cells(i, 4).Value
        regDate = ws.Cells(i, 5).Value

        ' ID 검증 (숫자, 필수)
        If Not IsNumeric(id) Or id = "" Then
            errorMsg = errorMsg & "Row " & i & ": ID must be a numeric value and cannot be empty." & vbNewLine
        End If

        ' 이름 검증 (문자열, 필수, 최대 50자)
        If Len(name) = 0 Then
            errorMsg = errorMsg & "Row " & i & ": Name is required." & vbNewLine
        ElseIf Len(name) > 50 Then
            errorMsg = errorMsg & "Row " & i & ": Name exceeds the maximum length of 50 characters." & vbNewLine
        End If

        ' 나이 검증 (숫자, 선택, 0-120)
        If age <> "" Then
            If Not IsNumeric(age) Or Val(age) < 0 Or Val(age) > 120 Then
                errorMsg = errorMsg & "Row " & i & ": Age must be a numeric value between 0 and 120." & vbNewLine
            End If
        End If

        ' 이메일 검증 (필수, 이메일 형식)
        If Len(email) = 0 Then
            errorMsg = errorMsg & "Row " & i & ": Email is required." & vbNewLine
        ElseIf Not email Like "*@*.*" Then
            errorMsg = errorMsg & "Row " & i & ": Email format is invalid." & vbNewLine
        End If

        ' 등록일 검증 (필수, 날짜 형식)
        If Not IsDate(regDate) Then
            errorMsg = errorMsg & "Row " & i & ": Registration Date must be a valid date." & vbNewLine
        End If
    Next i

    ' 결과 출력
    If errorMsg = "" Then
        MsgBox "Data validation completed successfully. No errors found.", vbInformation
    Else
        MsgBox "Data validation completed with errors:" & vbNewLine & errorMsg, vbExclamation
    End If

End Sub

설명

  • ws.Cells(i, 1).Value 등으로 각 컬럼 값을 읽습니다.
  • IsNumeric(), Len(), IsDate() 등을 사용해 데이터 타입 및 조건을 검증합니다.
  • 오류 메시지가 발견되면 사용자에게 메시지 박스로 출력합니다.

사용 방법

  1. 엑셀 파일에서 ALT + F11을 눌러 VBA 편집기를 엽니다.
  2. 새 모듈을 추가하고 위 코드를 붙여넣습니다.
  3. 데이터를 담은 시트를 "Data"로 이름 지정합니다.
  4. ALT + F8을 눌러 ValidateData 매크로를 실행합니다.

필요한 추가 검증 로직이나 조건이 있으면 알려주세요!

MS Access 데이터베이스 스키마 생성 및 업데이트 방법은 다음과 같습니다.


1. 데이터베이스 생성

  1. MS Access 실행
    • MS Access를 실행하고 빈 데이터베이스를 선택합니다.
  2. 데이터베이스 파일 저장
    • 파일 이름을 입력하고 .accdb 확장자로 저장합니다.

2. 테이블 생성

  1. 테이블 디자인 보기로 전환
    • 테이블 디자인 보기를 선택합니다.
  2. 필드 추가
    • 필드 이름, 데이터 형식을 입력합니다 (예: ID, 자동번호).
    • 기본 키는 ID 필드를 오른쪽 클릭 후 기본 키 설정을 선택합니다.
  3. 데이터 형식
    • 텍스트, 숫자, 날짜/시간, Yes/No 등 MS Access 데이터 형식에 맞게 필드를 구성합니다.
  4. 테이블 저장
    • Ctrl + S로 테이블을 저장하고 이름을 지정합니다.

3. 테이블 관계 설정

  1. 데이터베이스 도구 > 관계 선택
    • 데이터베이스 도구 > 관계를 클릭합니다.
  2. 테이블 추가
    • 필요한 테이블을 추가하고 관계를 설정합니다.
  3. 관계 설정
    • 필드를 끌어다 놓아 두 테이블 간의 관계를 설정하고, 참조 무결성 적용 옵션을 활성화합니다.

4. 데이터베이스 업데이트 (스키마 변경)

  1. 테이블 디자인 변경
    • 이미 생성된 테이블을 열고 디자인 보기로 전환합니다.
    • 필드를 추가, 수정 또는 삭제할 수 있습니다.
  2. 쿼리를 사용한 데이터 스키마 변경 (DDL)
    • 쿼리 디자인을 열고 SQL 보기로 전환한 후 아래와 같은 명령어를 입력합니다:
    ALTER TABLE 테이블명 ADD COLUMN 새필드명 텍스트(255);
    
    ALTER TABLE 테이블명 DROP COLUMN 삭제필드명;
    
  3. 데이터 무결성 유지
    • 필드를 변경할 때 데이터 무결성을 고려하여 참조 관계와 데이터 타입 일치를 유지합니다.

5. 폼 및 보고서 생성 (선택)

  • : 데이터를 입력하고 보기 쉽게 관리하기 위해 폼을 생성합니다.
  • 보고서: 데이터를 요약하고 출력하기 위해 보고서를 생성합니다.

더 복잡한 자동화가 필요하다면 VBA 코딩으로 스크립트를 작성하거나 매크로 기능을 활용할 수도 있습니다.
추가적인 도움이 필요하다면 구체적인 상황을 알려주세요!

+ Recent posts