Form Laporan Data Barang

231 detail_pengecekan where id_barang LIKE _ txtCari.Text order by datetime Adodc1.Refresh DataGrid1.Refresh ElseIf boxKategori.Text = NAMA BARANG Then Adodc1.RecordSource = select id_barang KODE BARANG, nama_barang NAMA BARANG, id_op ID OP,username USERNAME, kegiatan KEGIATAN, datetime TANGGAL, datetime JAM, qty QTY,sisa PERSEDIAAN, satuan SATUAN from detail_pengecekan where nama_barang LIKE _ txtCari.Text order by datetime Adodc1.Refresh DataGrid1.Refresh ElseIf boxKategori.Text = KEGIATAN Then Adodc1.RecordSource = select id_barang KODE BARANG, nama_barang NAMA BARANG, id_op ID OP,username USERNAME, kegiatan KEGIATAN, datetime TANGGAL, datetime JAM, qty QTY,sisa PERSEDIAAN, satuan SATUAN from detail_pengecekan where kegiatan LIKE _ txtCari.Text order by datetime Adodc1.Refresh DataGrid1.Refresh End If End Sub Private Sub txtCari_KeyPressKeyAscii As Integer KeyAscii = AscUCaseChrKeyAscii End Sub Private Sub Form_UnloadCancel As Integer Do Until Me.Top = -9000 DoEvents Me.Move Me.Left, Me.Top - 50 DoEvents Loop End Sub Private Sub txtJam1_Change cmdTampil.Enabled = True End Sub Private Sub txtJam2_change cmdTampil.Enabled = True End Sub Private Sub txtTgl1_change cmdTampil.Enabled = True End Sub Private Sub txtTgl2_Change cmdTampil.Enabled = True End Sub

M. Form Laporan Data Barang

Private Sub cmdExcel_Click Dim rst As New ADODB.Recordset Dim xlApp As Object Dim xlWb As Object Dim xlWs As Object Dim recArray As Variant Dim strDB As String 232 Dim fldCount As Integer Dim recCount As Long Dim iCol As Integer Dim iRow As Integer Buka koneksi dengan database Call konekDB txtTgl1.Caption = Formattgl1.Value, yyyy-mm-dd txtTgl2.Caption = Formattgl2.Value, yyyy-mm-dd Buka recordset berdasar tabel barang rsRating.Open select id_barang KODE BARANG, nama_barang NAMA BARANG, tipe_barang TIPE BARANG, SUMqty as PENGAMBILAN, sisa PERSEDIAAN, satuan SATUAN from laporan_barang where datetime BETWEEN _ txtTgl1.Caption AND txtTgl2.Caption group by id_barang order by pengambilan desc, koneksi Buat objek Excel dan tambahkan suatu workbook Set xlApp = CreateObjectExcel.Application Set xlWb = xlApp.Workbooks.Add Set xlWs = xlWb.worksheets2 Sheet1 Menampilkan Excel dan memberi kontrol ke pemakai selama Excel dijalankan xlApp.Visible = True xlApp.UserControl = True Copy judul field ke baris pertama dari worksheet xlWs.Cells1, 1.Value = TANGGAL = Formattgl1.Value, dd MMMM yyyy - Formattgl2.Value, dd MMMM yyyy fldCount = rsRating.Fields.Count For iCol = 1 To fldCount xlWs.Cells2, iCol.Value = rsRating.FieldsiCol - 1.Name Next Cek versi Excel If ValMidxlApp.Version, 1, InStr1, xlApp.Version, . _ - 1 8 Then EXCEL 2000 atau 2002: Gunakan CopyFromRecordset Copy recordset ke worksheet, mulai sel A2 xlWs.Cells3, 1.CopyFromRecordset rsRating Else EXCEL 97 atau sebelumnya: Gunakan GetRows kemudian copy array ke Excel Copy recordset ke suatu array recArray = rsRating.GetRows Catatan: GetRows nilai kembaliannya adalah array berbasis 0 dimana dimensi pertama berisi field dan dimensi kedua berisi record. Kita akan mentranspose array tersebut sehingga dimensi pertama berisi record Menentukan jumlah record recCount = UBoundrecArray, 2 + 1 + 1 karena array berbasis 0 233 Array untuk mencek isi data apakah tidak valid ketika menyalin array ke worksheet Excel For iCol = 0 To fldCount - 1 For iRow = 0 To recCount - 1 Perhatikan field Datetanggal If IsDaterecArrayiCol, iRow Then recArrayiCol, iRow = _ FormatrecArrayiCol, iRow Perhatikan array field objek OLE ElseIf IsArrayrecArrayiCol, iRow Then recArrayiCol, iRow = Array Field End If Next iRow record berikutnya Next iCol field berikutnya Transpose dan Copy array ke worksheet, mulai sel A2 xlWs.Cells2, 1.ResizerecCount, fldCount.Value = _ TransposeDimrecArray End If rst.Open select id_barang KODE BARANG, nama_barang NAMA BARANG, tipe_barang TIPE BARANG, sisa PERSEDIAAN, satuan SATUAN from barang order by id_barang, koneksi tambahkan suatu worksheet Set xlWs = xlWb.worksheets1 Sheet2 Menampilkan Excel dan memberi kontrol ke pemakai selama Excel dijalankan xlApp.Visible = True xlApp.UserControl = True Copy judul field ke baris pertama dari worksheet fldCount = rst.Fields.Count For iCol = 1 To fldCount xlWs.Cells1, iCol.Value = rst.FieldsiCol - 1.Name Next Cek versi Excel If ValMidxlApp.Version, 1, InStr1, xlApp.Version, . _ - 1 8 Then EXCEL 2000 atau 2002: Gunakan CopyFromRecordset Copy recordset ke worksheet, mulai sel A2 xlWs.Cells2, 1.CopyFromRecordset rst Else EXCEL 97 atau sebelumnya: Gunakan GetRows kemudian copy array ke Excel Copy recordset ke suatu array recArray = rst.GetRows Catatan: GetRows nilai kembaliannya adalah array berbasis 0 dimana dimensi pertama berisi field dan dimensi kedua berisi 234 record. Kita akan mentranspose array tersebut sehingga dimensi pertama berisi record Menentukan jumlah record recCount = UBoundrecArray, 2 + 1 + 1 karena array berbasis 0 Array untuk mencek isi data apakah tidak valid ketika menyalin array ke worksheet Excel For iCol = 0 To fldCount - 1 For iRow = 0 To recCount - 1 Perhatikan field Datetanggal If IsDaterecArrayiCol, iRow Then recArrayiCol, iRow = _ FormatrecArrayiCol, iRow Perhatikan array field objek OLE ElseIf IsArrayrecArrayiCol, iRow Then recArrayiCol, iRow = Array Field End If Next iRow record berikutnya Next iCol field berikutnya Transpose dan Copy array ke worksheet, mulai sel A2 xlWs.Cells2, 1.ResizerecCount, fldCount.Value = _ TransposeDimrecArray End If Auto-fit lebar kolom dan tinggi baris xlApp.Selection.CurrentRegion.Columns.AutoFit xlApp.Selection.CurrentRegion.Rows.AutoFit Tutup objek ADO rst.Close rsRating.Close koneksi.Close Set rst = Nothing Set koneksi = Nothing Lepaskan referensi Excel Set xlWs = Nothing Set xlWb = Nothing Set xlApp = Nothing End Sub Function TransposeDimv As Variant As Variant Fungsi untuk metranspose array berbasi 0 v Dim X As Long, Y As Long, Xupper As Long, Yupper As Long Dim tempArray As Variant Xupper = UBoundv, 2 Yupper = UBoundv, 1 ReDim tempArrayXupper, Yupper For X = 0 To Xupper For Y = 0 To Yupper 235 tempArrayX, Y = vY, X Next Y Next X TransposeDim = tempArray End Function Private Sub cmdKeluar_Click Unload Me End Sub Private Sub Form_Load tgl1.Value = FormatDate, dd MMMM yyyy tgl2.Value = FormatDate, dd MMMM yyyy End Sub Private Sub Form_UnloadCancel As Integer Do Until Me.Top = -9000 DoEvents Me.Move Me.Left, Me.Top - 50 DoEvents Loop End Sub

N. Form Pencarian Data Barang