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