페이지 트리

버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

CRUD 처리

Sheet 명을 ; 구분으로 여러 시트 처리 묶음 처리 할 경우 하나의 transaction 으로 처리됩니다.

(오류 발생 할 경우 경우 전체 rollback 처리됨)



Syntax

Public Function MultiCRUD (
    wbobj As Workbook,
    sheetList As String
As Long


Parameters


wbobj

Type: Excel.Workbook

CRUD 할 Workbook 개체

sheetList


Type: String

worksheet 명 리스트, ;문자로 구분

Return Value

Type:  Long

정상일 경우 : 처리건수

오류 일경우 : 오류코드(음수)



Example

1
2
3
4
5
6
7
8
9
10
11
12

Sub MultiCRUDTest()
 
    Set mxmodule = Application.COMAddIns.Item("iMATRIX.ExcelModule").Object
    mxmodule.xapi.MultiCRUD ThisWorkbook, "U1;U2"
 
    If mxmodule.xapi.LastErrorCode <> 0 Then
        mxmodule.xapi.MessageBox mxmodule.xapi.LastErrorMessage, vbInformation, "i-MATRIX"
    Else
        mxmodule.xapi.MessageBox "Complete." & vbCrLf & "Info" & mxmodule.xapi.ResponseData, vbInformation, "i-MATRIX"
    End If
 
End Sub







...

테이블에 입출력

''--------------------------------------------------------------------------------'
'    'Conn.crud Target Sheet, Execute Type, [Data Range]                          '
'    'Sheet       : CRUD Sheet (표준양식 반드시 준수)                             '
'    'Execute Type : "T" - TRUNCATE / INSERT                                      '
'    '               "D" - DELETE / INSERT                                        '
'    '               "M" - MERGE INTO                                             '
'    '               "N" - INSERT                                                 '
'    '               "R" - 행 단위로 구분자 지정(U:Update   D:Delete   C:Insert)  '
'    '[Data Range]: Execute Range / 미지정 시 전체 데이터 실행                    '
'    'Me = 해당 시트 (모듈에서 사용할 경우 시트를 명확히 재지정)                  '
''--------------------------------------------------------------------------------'



Syntax

public long CRUD(Excel.Worksheet shobj, string flag, string separator = "|")


Parameters

Name

동작명

비고

shobj
ActiveWorkSheet
flag

Execute Type :

"T" - TRUNCATE / INSERT
"D" - DELETE / INSERT
"M" - MERGE INTO
"N" - INSERT
"R" - 행 단위로 구분자 지정(U:Update   D:Delete   C:Insert)


separator

구분자

Default = "|"



Return Value

Type:  long

ErrorCode : Exception 발생시 -1

성공시 0


VBA 코드



Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

Sub MTX_CRUD()
    Dim lngEnd      As Long
    Dim rPoint      As Range
    Dim rData       As Range
    Dim strExecute  As String
     
    Dim addin As COMAddIn
    Dim mxmodule As Object
     
    On Error GoTo hErr
     
  
    Set addin = Application.COMAddIns.Item("iMATRIX6.ExcelModule")
    Set mxmodule = addin.Object
     
    Const strTitle  As String "i-MATRIX"
     
    Set rPoint = Me.Range("C_BasePoint")
    lngEnd = Me.Range("D" & Rows.count).End(xlUp).Row
    strExecute = Range("c_Execute").Value
     
    If lngEnd = rPoint.Row - 1 Then '''데이터 유무 판다후 진행
        MsgBox "입력된 데이터가 없습니다..", vbInformation, strTitle
    Else
        If strExecute = "R" And Application.WorksheetFunction.CountA(Range("C" & rPoint.Row & ":C" & lngEnd)) = 0 Then
            MsgBox "C열에 구분자를 입력(U:Update, D:Delete, C:Insert) 하십시요.", vbInformation, strTitle
        Else
            mxmodule.xapi.crud Me, strExecute
             
            If mxmodule.xapi.LasterrorCode <> 0 Then
                If mxmodule.xapi.LastErrorMessage = "Unknown error" Then
                    MsgBox "DB접속 정보가 없습니다.", vbCritical, strTitle
                Else
                    MsgBox mxmodule.xapi.LastErrorMessage, vbCritical, strTitle
                End If
            Else
                MsgBox "처리 되었습니다." & vbCrLf & "Info" & mxmodule.xapi.ResponseData, vbInformation, strTitle  '''저장 되었으면
                Set rData = rPoint.CurrentRegion.Offset(rPoint.Row - 2) '''데이터 삭제
                'rData.Clear
            End If
        End If
    End If
     
hErr:
    If Err <> 0 Then
        MsgBox Err.Description
    End If
     
    Set addin = Nothing
    Set mxmodule = Nothing
     
End Sub