VBA, VB.NET For Creo
Creo Parameter <=> PostgreSQL Table #5
ToolBOX01
2025. 1. 2. 17:03
반응형
기존 데이터를 업데이트 하기
기본 코드
Sub UpdateDataInPostgreSQL()
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 = 2 To lastRow ' 데이터가 2행부터 시작한다고 가정 (1행은 헤더)
Dim id As String
Dim modelname As String
Dim modeltype As String
Dim modellocation As String
Dim status As String
' 셀 데이터 읽기
id = .Cells(i, 1).Value ' 업데이트할 레코드의 고유 ID
modelname = Replace(.Cells(i, 2).Value, "'", "''") ' 특수문자 이스케이프
modeltype = Replace(.Cells(i, 3).Value, "'", "''")
modellocation = Replace(.Cells(i, 4).Value, "'", "''")
status = IIf(.Cells(i, 7).Value = 1, "TRUE", "FALSE") ' Boolean 변환
' SQL 쿼리 작성 (기존 레코드 업데이트)
query = "UPDATE ""DesignTeam"".""modelinfo"" SET " & _
"modelname = '" & modelname & "', " & _
"modeltype = '" & modeltype & "', " & _
"modellocation = '" & modellocation & "', " & _
"status = " & status & " " & _
"WHERE id = " & id & ";"
' 디버그용 쿼리 출력
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