메뉴 건너뛰기

app

[evb] CD 관리기 using ADOCE 3.0

박영식2006.08.30 18:14조회 수 1827댓글 0

  • 2
    • 글자 크기
이 프로그램의 소스는 순전히 about Pocket PC 2002에 있는 것을 썼다.

물론 버그와 추가 코드가 있긴 하지만, 핵심 기술을 남기범씨가 쓴 이책의

소스를 썼다.

추가 코드만 적어 놓겠다.

1. 종료시 확인 기능

Private Sub Form_OKClick()
        If MsgBox("종료하시겠습니까?", vbYesNo) = vbYes Then
            App.End
        Else
        ' 취소하면, frmMain으로 이동
        frmMain.Show
        End If
End Sub

  -> 이 프로그램은 종료가 되지 않는 버그가 있어서 OK버튼으로 설정했다.

2. 저장하기 버튼

Private Sub save_b_Click() '저장하기 버튼을 만들었다.
    If SaveCD() Then
        ' 성공 메시지
        MsgBox "저장되었습니다."
        ' 저장되면, frmMain으로 이동
        frmMain.Show
    Else
        ' 에러 메시지
        MsgBox "프로그램에 버그가 있습니다."
    End If
End Sub

-> 저장하기 버튼이 없고, OK버튼으로 걸려 있도록 만든 것 같은데, 실행되지 않아서 별도로 만들었다.

3. 삭제함수

Private Function DeleteCD() As Boolean  '삭제 함수

    Dim lngArtistId As Long
    Dim lngGenreId As Long
    
    On Error Resume Next
    
    DeleteCD = False
    
    ' CD 레코드셋 닫음
    If gobjCD.State = adStateOpen Then
        gobjCD.Close
    End If
    
    ' 체크 모드
    If Not IsNull(mlngCDId) Then
        ' 에디드 모드
        gobjCD.Open "SELECT * FROM cd WHERE CDId = " _
            & mlngCDId, gobjConnection, _
            adOpenForwardOnly, adLockOptimistic
    Else
        ' 새로운 모드new mode
        gobjCD.Open "cd", gobjConnection, adOpenForwardOnly, _
            adLockOptimistic, adCmdTableDirect
        ' 새로운 pk 값을 받음
        mlngCDId = GetNewPK("CD")
        ' 레코드 추가
        gobjCD.AddNew
        ' pk 값 설정
        gobjCD.Fields("CDId").Value = mlngCDId
    End If
    
    If gobjCD.EOF Then
        Exit Function
    End If
    
    gobjCD.Delete

    ' 레코드셋 update
    gobjCD.Update
    
    ' 에러 체크
    If Err.Number <> 0 Then
        Exit Function
    End If
    
    
    DeleteCD = True

End Function

-> 해당 recode를 삭제한다. save함수를 응용했다.(배낀거지...)
     핵심 코드

Const ADOCE_CLASS_RECORDSET = "ADOCE.Recordset.3.0"
Public gobjCD As ADOCE.Recordset
위의 두 줄은 최상위에서 전역전 선언이 되어야 한다.

Set gobjCD = CreateObject(ADOCE_CLASS_RECORDSET)
위의 줄은 global 변수를 초기화 하는 것인데, 최초 프로그램이 실행될 때,
실행되어야 되므로, Form_Load() 에 들어간다.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adoce31/html/ado30ref.asp

참고사이트로 adoce관련 명령어 index이다.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adoce31/html/ado30ref_17.asp

위의 것은 delete함수가 서술된 부분이다.

박영식 (비회원)
  • 2
    • 글자 크기
[evb] ADOCE, 유용한 제어1 (by 박영식) [evb] 로또번호생성기 using Function Rnd (by 박영식)

댓글 달기

박영식
2007.07.08 조회 2358
박영식
2007.06.14 조회 2633
박영식
2007.04.04 조회 5643
박영식
2007.02.16 조회 2443
박영식
2007.02.15 조회 2638
박영식
2006.09.19 조회 1927
박영식
2006.09.14 조회 1973
박영식
2006.09.09 조회 1903
박영식
2006.09.05 조회 1963
박영식
2006.09.01 조회 1575
첨부 (2)
frmain.JPG
19.2KB / Download 36
frinput.JPG
19.3KB / Download 37
위로