VBA, VB.NET For Creo

Creo Parameter <=> PostgreSQL Table #4

ToolBOX01 2025. 1. 2. 16:24
반응형

엑셀의 데이터를 데이터베이스에 추가 하기

기본 코드

Sub InsertDataToPostgreSQL()
    Dim conn As Object
    Dim query As String
    Dim lastRow As Long
    Dim i As Long

    ' PostgreSQL ODBC 연결 문자열
    Dim connectionString As String
    connectionString = "Driver={PostgreSQL Unicode(x64)};" & _
                       "Server=localhost;" & _
                       "Port=5432;" & _
                       "Database=creomodel01;" & _
                       "Uid=postgres;" & _
                       "Pwd=****;"

    ' ODBC 연결 열기
    Set conn = CreateObject("ADODB.Connection")
    On Error GoTo ErrorHandler
    conn.Open connectionString

    ' 데이터 삽입
    With ThisWorkbook.Sheets("Sheet1")
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row ' A열 기준 마지막 데이터 행 찾기

        For i = 1 To lastRow ' 데이터가 2행부터 시작한다고 가정
            Dim modelname As String
            Dim modeltype As String
            Dim modellocation As String
            Dim status As String

            ' 셀 데이터 읽기
            modelname = Replace(.Cells(i + 1, 2).Value, "'", "''") ' 특수문자 이스케이프
            modeltype = Replace(.Cells(i + 1, 3).Value, "'", "''")
            modellocation = Replace(.Cells(i + 1, 4).Value, "'", "''")
            status = IIf(.Cells(i + 1, 7).Value = 1, "TRUE", "FALSE") ' Boolean 변환

            ' SQL 쿼리 작성
            query = "INSERT INTO ""DesignTeam"".""modelinfo"" (modelname, modeltype, modellocation, status) " & _
                    "VALUES ('" & modelname & "', '" & modeltype & "', '" & modellocation & "', " & status & ");"

            ' 디버그용 쿼리 출력
            Debug.Print query

            ' SQL 실행
            conn.Execute query
        Next i
    End With

    ' 연결 닫기
    conn.Close
    Set conn = Nothing
    MsgBox "데이터베이스에 데이터가 성공적으로 삽입되었습니다."
    Exit Sub

ErrorHandler:
    MsgBox "오류 발생: " & Err.Description, vbCritical
    If Not conn Is Nothing Then conn.Close
    Set conn = Nothing
End Sub