Jumat, 16 Desember 2011

APKOM 4 (Latihan 44)

LATIHAN 44

Public Class Latihan44_36109005
    Dim ISMI As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source= " & Application.StartupPath & "\Data Grafik.accdb")
    Dim DT As New DataTable
    Private Sub Latihan44_36109005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ICHMI As New OleDb.OleDbDataAdapter
        ICHMI = New OleDb.OleDbDataAdapter("select * from qpembelianperbulanan", ISMI)
        DT.Rows.Clear()
        ICHMI.Fill(DT)
        DGV_36109005.DataSource = DT

        ICHMI.Dispose()

        Grafik_36109005.ColumnCount = 3
        Grafik_36109005.RowCount = DT.Rows.Count

        Dim POSISIBARIS As Integer = 0

        For Each x As DataRow In DT.Rows
            POSISIBARIS = POSISIBARIS + 1
            Grafik_36109005.Row = POSISIBARIS

            Grafik_36109005.RowLabel = x("bulan")

            Grafik_36109005.Column = 1
            Grafik_36109005.Data = x("unit")

            Grafik_36109005.Column = 2
            Grafik_36109005.Data = x("rata-rata harga") / 1000

            Grafik_36109005.Column = 3
            Grafik_36109005.Data = x("jumlah") / 10000
        Next

    End Sub
    Private Sub GB_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GB_36109005.Click
        Grafik_36109005.chartType = MSChart20Lib.VtChChartType.VtChChartType2dBar
    End Sub
    Private Sub GL_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GL_36109005.Click
        Grafik_36109005.chartType = MSChart20Lib.VtChChartType.VtChChartType2dLine
    End Sub
    Private Sub GLI_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GLI_36109005.Click
        Grafik_36109005.chartType = MSChart20Lib.VtChChartType.VtChChartType2dPie
    End Sub
    Private Sub GB3_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GB3_36109005.Click
        Grafik_36109005.chartType = MSChart20Lib.VtChChartType.VtChChartType3dBar
    End Sub
    Private Sub GL3_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GL3_36109005.Click
        Grafik_36109005.chartType = MSChart20Lib.VtChChartType.VtChChartType3dLine
    End Sub
End Class

APKOM 4 (Latihan 43)

LATIHAN 43

Public Class Latihan43_36109005
    Dim ISMI As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source= " & Application.StartupPath & "\Data Grafik.accdb")
    Dim DT As New DataTable
    Private Sub Latihan43_36109005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ICHMI As New OleDb.OleDbDataAdapter
        ICHMI = New OleDb.OleDbDataAdapter("select * from qpembelianperjenisbarang", ISMI)
        DT.Rows.Clear()
        ICHMI.Fill(DT)
        DGV_36109005.DataSource = DT

        ICHMI.Dispose()

        Grafik_36109005.ColumnCount = 3
        Grafik_36109005.RowCount = DT.Rows.Count

        Dim POSISIBARIS As Integer = 0

        For Each x As DataRow In DT.Rows
            POSISIBARIS = POSISIBARIS + 1
            Grafik_36109005.Row = POSISIBARIS

            Grafik_36109005.RowLabel = x("kode barang")

            Grafik_36109005.Column = 1
            Grafik_36109005.Data = x("unit")

            Grafik_36109005.Column = 2
            Grafik_36109005.Data = x("rata-rata harga") / 1000

            Grafik_36109005.Column = 3
            Grafik_36109005.Data = x("jumlah") / 10000
        Next
    End Sub
End Class

APKOM 4 (Latihan 42)

LATIHAN 42

Public Class Latihan42_36109005
    Dim ISMI As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source= " & Application.StartupPath & "\Data Grafik.accdb")
    Dim DT As New DataTable
    Private Sub Latihan42_36109005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ICHMI As New OleDb.OleDbDataAdapter
        ICHMI = New OleDb.OleDbDataAdapter("select * from qrekapperrekening", ISMI)
        DT.Rows.Clear()
        ICHMI.Fill(DT)
        DGV_36109005.DataSource = DT

        ICHMI.Dispose()

        Grafik_36109005.ColumnCount = 2
        Grafik_36109005.RowCount = DT.Rows.Count


        Dim POSISIBARIS As Integer = 0

        For Each x As DataRow In DT.Rows
            POSISIBARIS = POSISIBARIS + 1
            Grafik_36109005.Row = POSISIBARIS

            Grafik_36109005.RowLabel = x("koderekening")

            Grafik_36109005.Column = 1
            Grafik_36109005.Data = x("total debet") / 1000

            Grafik_36109005.Column = 2
            Grafik_36109005.Data = x("total kredit") / 1000
        Next
    End Sub
End Class

APKOM 4 (Latihan 41)

LATIHAN 41

Public Class Latihan41_36109005
    Dim ISMI As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source= " & Application.StartupPath & "\Data Grafik.accdb")
    Dim DT As New DataTable
    Private Sub Latihan41_36109005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim IMMY As New OleDb.OleDbDataAdapter
        IMMY = New OleDb.OleDbDataAdapter("select * from KEUANGAN", ISMI)
        DT.Rows.Clear()
        IMMY.Fill(DT)
        DGV_36109005.DataSource = DT

        IMMY.Dispose()

        Grafik_36109005.ColumnCount = 2
        Grafik_36109005.RowCount = DT.Rows.Count


        Dim POSISIBARIS As Integer = 0

        For Each x As DataRow In DT.Rows
            POSISIBARIS = POSISIBARIS + 1
            Grafik_36109005.Row = POSISIBARIS

            Grafik_36109005.RowLabel = x("tahun")

            Grafik_36109005.Column = 1
            Grafik_36109005.Data = x("PENDAPATAN") / 1000

            Grafik_36109005.Column = 2
            Grafik_36109005.Data = x("BIAYA") / 1000

        Next

    End Sub
End Class

Kamis, 15 Desember 2011

APKOM 4 (Latihan 40a dan 40b)

LATIHAN 40A

Public Class Latihan40A_36109005
    Dim ISMI As New OleDb.OleDbConnection("PROVIDER = MICROSOFT.ACE.OLEDB.12.0; DATA SOURCE =" & Application.StartupPath & "/DataMajemuk.accdb")
    Dim DT1 As New DataTable
    Dim DT2 As New DataTable
    Dim DS As New DataSet
    Dim BS1 As New BindingSource
    Dim BS2 As New BindingSource
    Public Sub MIKKY1()
        Dim S As New OleDb.OleDbDataAdapter
        DT2.Rows.Clear()
        DT1.Rows.Clear()
        S = New OleDb.OleDbDataAdapter("select * from mastertransaksi", ISMI)
        S.Fill(DT1)
        S = New OleDb.OleDbDataAdapter("select detailtransaksi.notrans, barang.kodebarang, barang.namabarang, detailtransaksi.unit, detailtransaksi.harga, detailtransaksi.unit*harga as jumlah from barang inner join detailtransaksi on barang.kodebarang = detailtransaksi.kodebarang", ISMI)
        S.Fill(DT2)
    End Sub
    Private Sub Latihan40A_36109005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MIKKY1()

        DS.Tables.Add(DT1)
        DS.Tables.Add(DT2)

        DT1.TableName = "immy"
        DT2.TableName = "immy2"

        DS.Relations.Add(New DataRelation("S", DS.Tables("immy").Columns("notrans"), DS.Tables("immy2").Columns("notrans")))

        BS1.DataSource = DS
        BS1.DataMember = "immy"

        BS2.DataSource = BS1
        BS2.DataMember = "S"

        Dim DC(1) As DataColumn
        DC(0) = DT1.Columns("notrans")
        DT1.PrimaryKey = dc

        DGV1_36109005.DataSource = BS1
        DGV2_36109005.DataSource = BS2
    End Sub
    Private Sub Hapus_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Hapus_36109005.Click
        Dim COM As New OleDb.OleDbCommand
        COM = New OleDb.OleDbCommand("delete * from mastertransaksi where notrans = '" & DGV1_36109005.CurrentRow.Cells("notrans").Value & "'", ISMI)
        ISMI.Open()
        COM.ExecuteNonQuery()
        ISMI.Close()

        COM = New OleDb.OleDbCommand("delete * from detailtransaksi where notrans = '" & DGV1_36109005.CurrentRow.Cells("notrans").Value & "'", ISMI)
        ISMI.Open()
        COM.ExecuteNonQuery()
        ISMI.Close()
        COM.Dispose()
        MIKKY1()
    End Sub

    Private Sub Tambah_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tambah_36109005.Click
        If Latihan40B_36109005.Visible = False Then
            Latihan40B_36109005.Show()
        Else
            Latihan40B_36109005.Activate()
        End If

        Latihan40B_36109005.NT_36109005.Text = ""
        Latihan40B_36109005.JT_36109005.Text = ""
        Latihan40B_36109005.NO_36109005.Text = "-"

        Latihan40B_36109005.MIKKY2()
        Latihan40B_36109005.MIKKY3()

    End Sub
    Private Sub Edit_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Edit_36109005.Click
        If Latihan40B_36109005.Visible = False Then
            Latihan40B_36109005.Show()
        Else
            Latihan40B_36109005.Activate()
        End If

        Latihan40B_36109005.NT_36109005.Text = DGV1_36109005.CurrentRow.Cells("notrans").Value
        Latihan40B_36109005.T_36109005.Value = DGV1_36109005.CurrentRow.Cells("tanggaltransaksi").Value
        Latihan40B_36109005.JT_36109005.Text = DGV1_36109005.CurrentRow.Cells("jenistransaksi").Value
        Latihan40B_36109005.NO_36109005.Text = DGV1_36109005.CurrentRow.Cells("notrans").Value

        Latihan40B_36109005.MIKKY2()
        Latihan40B_36109005.MIKKY3()
    End Sub
End Class


LATIHAN 40B

Public Class Latihan40B_36109005
    Dim ISMI As New OleDb.OleDbConnection("PROVIDER = MICROSOFT.ACE.OLEDB.12.0; DATA SOURCE =" & Application.StartupPath & "/dataMajemuk.accdb")
    Dim DT As New DataTable
    Dim IMMY As New ByIskandar.CariKeDataBaseByIskandar
    Dim COM As New OleDb.OleDbCommand
    Public Sub MIKKY2()
        Dim S As New OleDb.OleDbDataAdapter
        S = New OleDb.OleDbDataAdapter("select barang.KODEBARANG, barang.NAMABARANG, detailtransaksi.UNIT, detailtransaksi.HARGA, detailtransaksi.unit * detailtransaksi.harga as JUMLAH from barang inner join detailtransaksi on barang.kodebarang = detailtransaksi.kodebarang where notrans = '" & NT_36109005.Text & "'", ISMI)
        DT.Rows.Clear()
        S.Fill(DT)
    End Sub
    Public Sub MIKKY3()
        Dim Manis1 As Integer
        For Each Manis2 As DataGridViewRow In DGV_36109005.Rows
            Manis1 = Manis1 + Manis2.Cells("JUMLAH").Value
        Next
        TO_36109005.Text = Manis1
    End Sub
    Private Sub MIKKY4()
        If NT_36109005.Text.Length = 0 Then
            MsgBox("No Transaksi Belum Di isi")
            Exit Sub
        End If

        If JT_36109005.Text.Length = 0 Then
            MsgBox("Jenis Transaksi Belum Di isi")
            Exit Sub
        End If

        If DT.Rows.Count = 0 Then
            MsgBox("Datatable Bulum Di isi")
            Exit Sub
        End If
    End Sub
    Private Sub Febriani()
        MIKKY4()
        IMMY.AturPencarianDataBase("mastertransaksi", "notrans", NT_36109005.Text, 1, ISMI)
        If IMMY.JumlanBaris > 0 Then
            MsgBox("No Transaksi Seperti Itu Sudah Ada")
            Exit Sub
        End If

        COM = New OleDb.OleDbCommand("insert into mastertransaksi (notrans, tanggaltransaksi, jenistransaksi) values ('" & NT_36109005.Text & "',#" & T_36109005.Value.Month & "/" & T_36109005.Value.Day & "/" & T_36109005.Value.Year & "#,'" & JT_36109005.Text & "')", ISMI)
        ISMI.Open()
        COM.ExecuteNonQuery()
        ISMI.Close()

        For Each x As DataRow In DT.Rows
            COM = New OleDb.OleDbCommand("insert into detailtransaksi (notrans, kodebarang, unit, harga) values ('" & NT_36109005.Text & "', '" & x("kodebarang") & "', '" & x("unit") & "', '" & x("harga") & "') ", ISMI)
            ISMI.Open()
            COM.ExecuteNonQuery()
            ISMI.Close()
        Next
        COM.Dispose()

        NT_36109005.Text = ""
        JT_36109005.Text = ""
        TO_36109005.Text = ""
        NO_36109005.Text = "-"

        DT.Rows.Clear()
        Latihan40A_36109005.MIKKY1()
    End Sub
    Public Sub Edit()
        MIKKY4()
        If NT_36109005.Text <> NO_36109005.Text Then
            IMMY.AturPencarianDataBase("mastertransaksi", "notrans", NT_36109005.Text, 1, ISMI)
            If IMMY.JumlanBaris > 0 Then
                MsgBox("No Transaksi Seperti Itu Sudah Ada")
                Exit Sub
            End If
        End If

        COM = New OleDb.OleDbCommand("delete * from mastertransaksi where notrans = '" & NO_36109005.Text & "'", ISMI)
        ISMI.Open()
        COM.ExecuteNonQuery()
        ISMI.Close()

        COM = New OleDb.OleDbCommand("insert into mastertransaksi(notrans, tanggaltransaksi, jenistransaksi) values ('" & NT_36109005.Text & "',#" & T_36109005.Value.Month & "/" & T_36109005.Value.Day & "/" & T_36109005.Value.Year & "#,'" & JT_36109005.Text & "')", ISMI)
        ISMI.Open()
        COM.ExecuteNonQuery()
        ISMI.Close()

        COM = New OleDb.OleDbCommand("delete * from detailtransaksi where notrans = '" & NO_36109005.Text & "'", ISMI)
        ISMI.Open()
        COM.ExecuteNonQuery()
        ISMI.Close()

        For Each x As DataRow In DT.Rows
            COM = New OleDb.OleDbCommand("insert into detailtransaksi(notrans, kodebarang, unit, harga) values ('" & NT_36109005.Text & "', '" & x("kodebarang") & "', '" & x("unit") & "', '" & x("harga") & "')", ISMI)
            ISMI.Open()
            COM.ExecuteNonQuery()
            ISMI.Close()
        Next
        COM.Dispose()

        NT_36109005.Text = ""
        JT_36109005.Text = ""
        TO_36109005.Text = ""
        NO_36109005.Text = "-"

        DT.Rows.Clear()
        Latihan40A_36109005.MIKKY1()
    End Sub
    Private Sub Latihan40B_36109005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MIKKY2()

        Dim DC(1) As DataColumn
        DC(0) = DT.Columns("kodebarang")
        DT.PrimaryKey = DC

        DT.Columns("unit").DefaultValue = 0
        DT.Columns("harga").DefaultValue = 0
        DT.Columns("jumlah").DefaultValue = 0

        DGV_36109005.DataSource = DT
    End Sub
    Private Sub DGV_36109005_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV_36109005.CellEndEdit
        If DGV_36109005.Columns(e.ColumnIndex).Name = "KODEBARANG" Then

            DGV_36109005.CurrentRow.Cells("NAMABARANG").Value = ""
            DGV_36109005.CurrentRow.Cells("UNIT").Value = 0
            DGV_36109005.CurrentRow.Cells("HARGA").Value = 0
            DGV_36109005.CurrentRow.Cells("JUMLAH").Value = 0

            IMMY.AturPencarianDataBase("barang", "kodebarang", DGV_36109005.CurrentRow.Cells("KODEBARANG").Value, 1, ISMI)
            If IMMY.JumlanBaris > 0 Then
                DGV_36109005.CurrentRow.Cells("NAMABARANG").Value = IMMY.DataTablenya.Rows(0).Item("NAMABARANG")
            Else
                DGV_36109005.CurrentRow.Cells("NAMABARANG").Value = ""
                If Latihan38_39_40_36109005.ShowDialog = Windows.Forms.DialogResult.OK Then
                    DGV_36109005.CurrentRow.Cells("KODEBARANG").Value = Latihan38_39_40_36109005.DGV_36109005.CurrentRow.Cells("KODEBARANG").Value
                    DGV_36109005.CurrentRow.Cells("NAMABARANG").Value = Latihan38_39_40_36109005.DGV_36109005.CurrentRow.Cells("NAMABARANG").Value
                End If
            End If

        ElseIf DGV_36109005.Columns(e.ColumnIndex).Name = "UNIT" Or DGV_36109005.Columns(e.ColumnIndex).Name = "HARGA" Then
            DGV_36109005.CurrentRow.Cells("JUMLAH").Value = DGV_36109005.CurrentRow.Cells("UNIT").Value * DGV_36109005.CurrentRow.Cells("HARGA").Value
            MIKKY3()
        End If
    End Sub
    Private Sub Simpan_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Simpan_36109005.Click
        If NO_36109005.Text = "-" Then
            Febriani()
        Else
            Edit()
        End If
    End Sub
    Private Sub DGV_36109005_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles DGV_36109005.DataError
        MsgBox("Terjadi sedikit kesalahan...")
    End Sub
End Class

APKOM 4 (Latihan 39)

LATIHAN 39

Public Class Latihan39_36109005
    Dim ISMI As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source= " & Application.StartupPath & "\DATAMAJEMUK.accdb")
    Dim DT As New DataTable
    Dim CARI As New ByIskandar.CariKeDataBaseByIskandar
    Private Sub Latihan39_36109005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DT.Columns.Add(New DataColumn("KODEBARANG", GetType(String)))
        DT.Columns.Add(New DataColumn("NAMABARANG", GetType(String)))
        DT.Columns.Add(New DataColumn("UNIT", GetType(Double)))
        DT.Columns.Add(New DataColumn("HARGA", GetType(Integer)))
        DT.Columns.Add(New DataColumn("JUMLAH", GetType(Double)))
        DGV_36109005.DataSource = DT

        Dim DC(1) As DataColumn
        DC(0) = DT.Columns("KODEBARANG")
        DT.PrimaryKey = DC

        DT.Columns("UNIT").DefaultValue = 0
        DT.Columns("HARGA").DefaultValue = 0
        DT.Columns("JUMLAH").DefaultValue = 0

    End Sub
    Private Sub Febriani()
        Dim Manis1 As Integer
        For Each Manis2 As DataGridViewRow In DGV_36109005.Rows
            Manis1 = Manis1 + Manis2.Cells("JUMLAH").Value
        Next
        TO_36109005.Text = Manis1

    End Sub

    Private Sub DataGridView1_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV_36109005.CellEndEdit
        If e.ColumnIndex = 0 Then

            CARI.AturPencarianDataBase("BARANG", "kodebarang", DGV_36109005.CurrentRow.Cells("kodebarang").Value, 1, ISMI)
            If CARI.JumlanBaris > 0 Then
                DGV_36109005.CurrentRow.Cells("KODEBARANG").Value = CARI.DataTablenya.Rows(0).Item("KODEBARANG")
                DGV_36109005.CurrentRow.Cells("NAMABARANG").Value = CARI.DataTablenya.Rows(0).Item("NamaBarang")
            Else
                MsgBox("kode barang tidak tersedia")
                If Latihan38_39_40_36109005.ShowDialog = Windows.Forms.DialogResult.OK Then
                    DGV_36109005.CurrentRow.Cells("KODEBARANG").Value = Latihan38_39_40_36109005.DGV_36109005.CurrentRow.Cells("KodeBarang").Value
                    DGV_36109005.CurrentRow.Cells("NAMABARANG").Value = Latihan38_39_40_36109005.DGV_36109005.CurrentRow.Cells("namabarang").Value
                    DGV_36109005.CurrentRow.Cells("HARGA").Value = Latihan38_39_40_36109005.DGV_36109005.CurrentRow.Cells("HARGAJUAL").Value
                Else
                    DGV_36109005.CurrentRow.Cells("KODEBARANG").Value = ""
                    DGV_36109005.CurrentRow.Cells("NAMABARANG").Value = ""
                End If
            End If
        End If
        If e.ColumnIndex = 2 Or e.ColumnIndex = 3 Then
            DGV_36109005.CurrentRow.Cells("JUMLAH").Value = DGV_36109005.CurrentRow.Cells("UNIT").Value * DGV_36109005.CurrentRow.Cells("HARGA").Value

        End If

        Febriani()
    End Sub
    Private Sub Simpan_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Simpan_36109005.Click
        If NT_36109005.Text.Length = 0 Then
            MsgBox("no transaksi belum terisi")
            Exit Sub
        End If


        If JT_36109005.Text.Length = 0 Then
            MsgBox("jenis transaksi belum terisi")
            Exit Sub
        End If

        If DT.Rows.Count = 0 Then
            MsgBox("data tidak tersedia")
        End If

        CARI.AturPencarianDataBase("mastertransaksi", "notrans", NT_36109005.Text, 1, ISMI)

        If CARI.JumlanBaris > 0 Then
            MsgBox("kode sudah ada")
            Exit Sub
        End If

        Dim COM As New OleDb.OleDbCommand
        COM = New OleDb.OleDbCommand("insert into mastertransaksi (notrans, tanggaltransaksi, jenistransaksi) values ('" & NT_36109005.Text & "',#" & T_36109005.Value.Month & "/" & T_36109005.Value.Day & "/" & T_36109005.Value.Year & "#,'" & JT_36109005.Text & "')", ISMI)

        ISMI.Open()
        COM.ExecuteNonQuery()
        ISMI.Close()

        For Each r As DataRow In DT.Rows

            COM = New OleDb.OleDbCommand("insert into detailtransaksi (notrans, kodebarang, unit, harga ) values ('" & NT_36109005.Text & "','" & r("kodebarang") & "'," & r("unit") & "," & r("harga") & ")", ISMI)
            ISMI.Open()
            COM.ExecuteNonQuery()
            ISMI.Close()

            COM.Dispose()

        Next

        NT_36109005.Text = ""
        JT_36109005.Text = ""
        TO_36109005.Text = ""

        DT.Rows.Clear()
        Febriani()

    End Sub
End Class

Jumat, 02 Desember 2011

APKOM 4 (Latihan 38)

LATIHAN 38

Public Class Latihan38_36109005
    Dim DT As New DataTable
    Dim TA As New OleDb.OleDbCommand
    Dim BI As New ByIskandar.CariKeDataBaseByIskandar
    Dim ISMI As New OleDb.OleDbConnection("PROVIDER = MICROSOFT.ACE.OLEDB.12.0; DATA SOURCE =" & Application.StartupPath & "/Datamajemuk.ACCDB")
    Private Sub Latihan38_36109005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim a As New OleDb.OleDbDataAdapter
        a = New OleDb.OleDbDataAdapter("select barang.KODEBARANG, barang.NAMABARANG, detailtransaksi.UNIT, detailtransaksi.HARGA, detailtransaksi.unit*harga as JUMLAH from barang inner join detailtransaksi on barang.kodebarang = detailtransaksi.kodebarang where notrans ='" & NT_36109005.Text & "'", ISMI)
        DT.Rows.Clear()
        a.Fill(DT)
        a.Dispose()

        Dim DC(1) As DataColumn
        DC(0) = DT.Columns("kodebarang")
        DT.PrimaryKey = DC

        DGV_36109005.DataSource = DT
    End Sub
    Private Sub IMHI()
        Dim IMHI1 As Integer = 0
        For Each IMHI2 As DataRow In DT.Rows
            IMHI1 += IMHI2("JUMLAH")
        Next
        TO_36109005.Text = IMHI1
    End Sub
    Private Sub U_36109005_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles U_36109005.TextChanged
        J_36109005.Text = Val(U_36109005.Text) * Val(H_36109005.Text)
    End Sub
    Private Sub KB_36109005_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles KB_36109005.Leave
        If KB_36109005.Text.Length = 0 Then
            Exit Sub
        End If
        BI.AturPencarianDataBase("barang", "kodebarang", KB_36109005.Text, 1, ISMI)
        If BI.JumlanBaris > 0 Then
            KB_36109005.Text = BI.DataTablenya.Rows(0).Item("KODEBARANG")
            NB_36109005.Text = BI.DataTablenya.Rows(0).Item("NAMABARANG")
        Else
            MsgBox("Kode barang itu tidak ada..")
            Exit Sub
        End If
    End Sub
    Private Sub KB_36109005_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KB_36109005.TextChanged
        NB_36109005.Text = ""
        U_36109005.Text = ""
        H_36109005.Text = ""
    End Sub
    Private Sub Tambah_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tambah_36109005.Click
        If KB_36109005.Text.Length = 0 Then
            MsgBox("Kode Barang Belum Di isi")
            Exit Sub
        End If

        If Val(U_36109005.Text) = 0 Then
            MsgBox("Kode Barang Belum Di isi")
            Exit Sub
        End If

        If Val(H_36109005.Text) = 0 Then
            MsgBox("Kode Barang Belum Di isi")
            Exit Sub
        End If

        Dim DR As DataRow
        DR = DT.Rows.Find(KB_36109005.Text)
        If DR Is Nothing Then
            DR = DT.NewRow
            DR("KODEBARANG") = KB_36109005.Text
            DR("NAMABARANG") = NB_36109005.Text
            DR("UNIT") = Val(U_36109005.Text)
            DR("HARGA") = Val(H_36109005.Text)
            DR("JUMLAH") = Val(J_36109005.Text)

            DT.Rows.Add(DR)

            KB_36109005.Text = ""
            U_36109005.Text = ""
            H_36109005.Text = ""

        Else
            MsgBox("Kode barang itu sudah ada, mohon ganti dengan kode barang yang lain...")
        End If
        IMHI()
    End Sub
    Private Sub Simpan_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Simpan_36109005.Click
        If NT_36109005.Text.Length = 0 Then
            MsgBox("No Transaksi Belum Di isi")
            Exit Sub
        End If

        If JT_36109005.Text.Length = 0 Then
            MsgBox("Jenis Transaksi Belum Di isi")
            Exit Sub
        End If

        If DT.Rows.Count = 0 Then
            MsgBox("Isi datatable")
            Exit Sub
        End If

        BI.AturPencarianDataBase("mastertransaksi", "notrans", NT_36109005.Text, 1, ISMI)
        If BI.JumlanBaris > 0 Then
            MsgBox("No Trans Seperti Itu Sudah Ada")
            Exit Sub
        End If

        TA = New OleDb.OleDbCommand("insert into mastertransaksi (notrans, tanggaltransaksi, jenistransaksi) values ('" & NT_36109005.Text & "',#" & T_36109005.Value.Month & "/" & T_36109005.Value.Day & "/" & T_36109005.Value.Year & "#,'" & JT_36109005.Text & "')", ISMI)
        ISMI.Open()
        TA.ExecuteNonQuery()
        ISMI.Close()

        For Each x As DataRow In DT.Rows
            TA = New OleDb.OleDbCommand("insert into detailtransaksi (notrans, kodebarang, unit, harga) values ('" & NT_36109005.Text & "','" & x("kodebarang") & "','" & x("unit") & "','" & x("harga") & "')", ISMI)
            ISMI.Open()
            TA.ExecuteNonQuery()
            ISMI.Close()
        Next
        TA.Dispose()

        NT_36109005.Text = ""
        JT_36109005.Text = ""

        DT.Rows.Clear()
        IMHI()
    End Sub
    Private Sub H_36109005_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles H_36109005.TextChanged
        J_36109005.Text = Val(U_36109005.Text) * Val(H_36109005.Text)
    End Sub
    Private Sub J_36109005_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles J_36109005.TextChanged
        J_36109005.Text = Val(U_36109005.Text) * Val(H_36109005.Text)
    End Sub
End Class

APKOM 4 (Latihan 37)

LATIHAN 37
Public Class Latihan37_36109005
    Dim DT As New DataTable
    Dim TA As New OleDb.OleDbCommand
    Dim BI As New ByIskandar.CariKeDataBaseByIskandar
    Dim ISMI As New OleDb.OleDbConnection("PROVIDER = MICROSOFT.ACE.OLEDB.12.0; DATA SOURCE =" & Application.StartupPath & "/Datamajemuk.ACCDB")
    Private Sub Latihan37_36109005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim a As New OleDb.OleDbDataAdapter
        a = New OleDb.OleDbDataAdapter("select barang.KODEBARANG, barang.NAMABARANG, detailtransaksi.UNIT, detailtransaksi.HARGA, detailtransaksi.unit*harga as JUMLAH from barang inner join detailtransaksi on barang.kodebarang = detailtransaksi.kodebarang where notrans ='" & NT_36109005.Text & "'", ISMI)
        DT.Rows.Clear()
        a.Fill(DT)
        a.Dispose()

        Dim DC(1) As DataColumn
        DC(0) = DT.Columns("kodebarang")
        DT.PrimaryKey = DC

        DGV_36109005.DataSource = DT
    End Sub
    Private Sub IMHI()
        Dim IMHI1 As Integer = 0
        For Each IMHI2 As DataRow In DT.Rows
            IMHI1 += IMHI2("JUMLAH")
        Next
        TO_36109005.Text = IMHI1
    End Sub
    Private Sub U_36109005_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles U_36109005.TextChanged
        J_36109005.Text = Val(U_36109005.Text) * Val(H_36109005.Text)
    End Sub
    Private Sub KB_36109005_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles KB_36109005.Leave
        If KB_36109005.Text.Length = 0 Then
            Exit Sub
        End If
        BI.AturPencarianDataBase("barang", "kodebarang", KB_36109005.Text, 1, ISMI)
        If BI.JumlanBaris > 0 Then
            KB_36109005.Text = BI.DataTablenya.Rows(0).Item("KODEBARANG")
            NB_36109005.Text = BI.DataTablenya.Rows(0).Item("NAMABARANG")
        Else
            MsgBox("Kode barang itu tidak ada..")
            Exit Sub
        End If
    End Sub
    Private Sub KB_36109005_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KB_36109005.TextChanged
        NB_36109005.Text = ""
        U_36109005.Text = ""
        H_36109005.Text = ""
    End Sub
    Private Sub Tambah_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tambah_36109005.Click
        If KB_36109005.Text.Length = 0 Then
            MsgBox("Kode Barang Belum Di isi")
            Exit Sub
        End If

        If Val(U_36109005.Text) = 0 Then
            MsgBox("Kode Barang Belum Di isi")
            Exit Sub
        End If

        If Val(H_36109005.Text) = 0 Then
            MsgBox("Kode Barang Belum Di isi")
            Exit Sub
        End If

        Dim DR As DataRow
        DR = DT.Rows.Find(KB_36109005.Text)
        If DR Is Nothing Then
            DR = DT.NewRow
            DR("KODEBARANG") = KB_36109005.Text
            DR("NAMABARANG") = NB_36109005.Text
            DR("UNIT") = Val(U_36109005.Text)
            DR("HARGA") = Val(H_36109005.Text)
            DR("JUMLAH") = Val(J_36109005.Text)

            DT.Rows.Add(DR)

            KB_36109005.Text = ""
            U_36109005.Text = ""
            H_36109005.Text = ""

        Else
            MsgBox("Kode barang itu sudah ada, mohon ganti dengan kode barang yang lain...")
        End If
        IMHI()
    End Sub
    Private Sub Simpan_36109005_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Simpan_36109005.Click
        If NT_36109005.Text.Length = 0 Then
            MsgBox("No Transaksi Belum Di isi")
            Exit Sub
        End If

        If JT_36109005.Text.Length = 0 Then
            MsgBox("Jenis Transaksi Belum Di isi")
            Exit Sub
        End If

        If DT.Rows.Count = 0 Then
            MsgBox("Isi datatable")
            Exit Sub
        End If

        BI.AturPencarianDataBase("mastertransaksi", "notrans", NT_36109005.Text, 1, ISMI)
        If BI.JumlanBaris > 0 Then
            MsgBox("No Trans Seperti Itu Sudah Ada")
            Exit Sub
        End If

        TA = New OleDb.OleDbCommand("insert into mastertransaksi (notrans, tanggaltransaksi, jenistransaksi) values ('" & NT_36109005.Text & "',#" & T_36109005.Value.Month & "/" & T_36109005.Value.Day & "/" & T_36109005.Value.Year & "#,'" & JT_36109005.Text & "')", ISMI)
        ISMI.Open()
        TA.ExecuteNonQuery()
        ISMI.Close()

        For Each x As DataRow In DT.Rows
            TA = New OleDb.OleDbCommand("insert into detailtransaksi (notrans, kodebarang, unit, harga) values ('" & NT_36109005.Text & "','" & x("kodebarang") & "','" & x("unit") & "','" & x("harga") & "')", ISMI)
            ISMI.Open()
            TA.ExecuteNonQuery()
            ISMI.Close()
        Next
        TA.Dispose()

        NT_36109005.Text = ""
        JT_36109005.Text = ""

        DT.Rows.Clear()
        IMHI()
    End Sub
    Private Sub H_36109005_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles H_36109005.TextChanged
        J_36109005.Text = Val(U_36109005.Text) * Val(H_36109005.Text)
    End Sub
    Private Sub J_36109005_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles J_36109005.TextChanged
        J_36109005.Text = Val(U_36109005.Text) * Val(H_36109005.Text)
    End Sub
End Class