Pages

Tuesday, December 10, 2013

Form Grouping ( Part 3 )

This the final part
This is the source code
Dim RsGroup As New ADODB.Recordset
Dim Edit As Boolean
Private Sub CmdClose_Click()
Unload Me
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyF2:
    KeyCode = 0
    Edit = False
    TxtCode = KodeAuto
    TxtName = ""
    TxtName.SetFocus
Case vbKeyF3:
    KeyCode = 0
    saving
Case vbKeyF4: RefreshData
Case vbKeyF5: Deleting
Case vbKeyEscape:
    KeyCode = 0
    Unload Me
End Select

End Sub


Sub Deleting()
SQL = "Delete from itmGrp where grpcd='" & Trim(TxtCode) & "'"
If buka Then
    DbCon.Execute (SQL)
    DbCon.Close
    RefreshData
    MsgBox "Data Deleted"
End If
End Sub

Private Sub Form_Load()
Me.Height = Me.BasForm1.Height
Me.Width = Me.BasForm1.Width

GetLocation Me
ResizeForm Me
CenterForm Me

If DbCon.State Then DbCon.Close

With RsGroup
    .Fields.Append "grpcd", adVarChar, 10
    .Fields.Append "grpnm", adVarChar, 50
    .Open
End With

RefreshData

End Sub

Sub DropRs()
If RsGroup.RecordCount > 0 Then
    RsGroup.MoveFirst
    While Not RsGroup.EOF
        RsGroup.Delete
        RsGroup.MoveNext
    Wend
End If
End Sub


Sub RefreshData()
DropRs

SQL = "select grpnm,grpcd from ItmGrp"
If buka Then
    Set RSFind = DbCon.Execute(SQL)
   
    If Not RSFind.BOF Then
        RSFind.MoveFirst
        While Not RSFind.EOF
            RsGroup.AddNew
            RsGroup!grpcd = RSFind!grpcd
            RsGroup!grpnm = RSFind!grpnm
            RSFind.MoveNext
        Wend
   
        Grid.DataSource = RsGroup
        RsGroup.MoveFirst
        Edit = True
    End If
    DbCon.Close
End If

TxtCari = ""
End Sub

Private Sub Form_Unload(Cancel As Integer)
'frmMsgBox.MsgCstm("apakah anda akan keluar dari program sekarang atau besok ?" _
'    , "", mbNone, 2, True, "yes", "cancel") = 1
If frmMsgBox.Msg("Exit menu?", mbYesNo, "", mbQuestion) = 1 Then
    Cancel = 0
    If RsGroup.State Then RsGroup.Close
Else
    Cancel = 1
End If

End Sub


Private Sub Grid_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
    TxtCari = ""
    TxtCari.SetFocus
ElseIf KeyCode = vbKeyReturn Then
    TxtName.SetFocus
    SendKeys "{Home}+{End}"
    TxtCari = ""
End If
End Sub

Private Sub Grid_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
TxtCode = Trim(Grid.Columns(0).Text)
Edit = True
End Sub

Private Sub TxtCari_Change()
If Edit And Trim(TxtCari) <> "" Then
    RsGroup.Find "grpnm like '%" & TxtCari & "%'", , adSearchForward, 1
    If Not RsGroup.EOF Then
        TxtCode = RsGroup!grpcd
        TxtName = RsGroup!grpnm
    Else
        TxtName = ""
        TxtCode = ""
    End If
End If
End Sub

Private Sub Grid_GotFocus()
Me.KeyPreview = False
End Sub

Private Sub grid_LostFocus()
Me.KeyPreview = True
End Sub

Private Sub TxtCode_Change()
If Edit Then
    RsGroup.Find "grpcd='" & TxtCode & "'", , adSearchForward, 1
    If Not RsGroup.EOF Then
        TxtCode = RsGroup!grpcd
        TxtName = RsGroup!grpnm
    End If
End If
End Sub

Private Sub TxtCari_KeyPress(KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Private Sub TxtName_KeyPress(KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub

Sub saving()
If Trim(TxtName) = "" Then
    MsgBox "Empty Group Name"
    TxtName.SetFocus
    Exit Sub
End If

If Edit Then
    SQL = "Update Itmgrp set grpnm='" & Trim(TxtName) & "',info='U',Status='N' where grpcd='" & _
        Trim(TxtCode) & "'"
Else
    SQL = "INSERT INTO [dbo].[ItmGrp] ([GrpCd],[GrpNm],[Info],[Status])Values('" & KodeAuto & "','" & _
        Trim(TxtName) & "','I','N')"
End If

If buka Then
    DbCon.Execute SQL
    DbCon.Close
    MsgBox "Data Saved"
    RefreshData
End If
End Sub

No comments:

Post a Comment