BAB 12
description
Transcript of BAB 12
![Page 1: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/1.jpg)
BAB 12TOPIK KHAS : PENGGUNAAN
VB DENGAN PERISIAN MICROSOFT YANG LAIN (VBA)
![Page 2: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/2.jpg)
Contoh 1: Penggunaan VB untuk memindahkan maklumat dari excel sheet ke access database
Anda mempunyai masalah untuk memindahkan data dari excel kepada access.
Katakan anda perlu menaip semula 300 data data excel ke dalam access. Sudah tentu mempunyai masalah besar.
Bayangkan data tersebut adalah merupakan maklumat pelajar dari segi nama, alamat, cpga, status dan sebagainya. Masa yang diambil untuk menulis semula data tersebut adalah lama dan rumit. VB boleh menyelesaikannya. Bagaimana ?
![Page 3: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/3.jpg)
Dalam contoh ini ditunjukkan bagaimana menulis semula data dalam excel kepada access.
1. Fail excel tersebut dinamakan sebagai data2.xls dan diletakkan dalam direktori c:\projek
2. Fail access yang digunakan dinamakan baru.mdb dan diletakkan dalam direktori c:\projek
3. Anda perlu menggunakan adodc sebagai penghubung antara vb dan access.
4. Dalam hal ini anda semestinya sudah tahu nama field dalam database yang akan digunakan.
![Page 4: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/4.jpg)
Berikut adalah data yang wujud dalam excel
![Page 5: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/5.jpg)
Berikut adalah nama field yang wujud dalam access
![Page 6: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/6.jpg)
frmPindahExcel
adodcPindahExcel
list1
command1
Berikan nama yang sesuai kepada setiap objek
Bina satu antaramuka seperti berikut :
![Page 7: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/7.jpg)
Tuliskan aturcara yang berikut :
1. Untuk pengishtiharan umum
Option ExplicitDim excelapp As Excel.ApplicationDim excelsht As Excel.WorksheetDim excelwkb As Excel.WorkbookDim kawalrow, kawalcol, i, j as Integer
![Page 8: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/8.jpg)
Tuliskan aturcara yang berikut :
2. Untuk butang clik…dan tulis ke database
Private Sub Command2_Click()Set excelapp = New Excel.ApplicationSet excelwkb = excelapp.Workbooks.Open("C:\
Projek\data2.xls")Set excelsht = excelwkb.Worksheets("Sheet1")adodcPindahExcel.RecordSource = "select * from
tblPelajar"adodcPindahExcel.Refreshkawalrow = 3kawalcol = 1For kawalrow = 3 To 11 For kawalcol = 1 To 7 List1.AddItem (excelsht.Cells(kawalrow, kawalcol)) NextNext Sambungan …
![Page 9: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/9.jpg)
kawalrow = 3i = 1For kawalrow = 3 To 11 adodcPindahExcel.Recordset.AddNew adodcPindahExcel.Recordset("nama") =
excelsht.Cells(kawalrow, i) adodcPindahExcel.Recordset("cgpa") =
excelsht.Cells(kawalrow, i + 1) adodcPindahExcel.Recordset("alamat") =
excelsht.Cells(kawalrow, i + 2) adodcPindahExcel.Recordset("tinggi") =
excelsht.Cells(kawalrow, i + 3) adodcPindahExcel.Recordset("disiplin") =
excelsht.Cells(kawalrow, i + 4) adodcPindahExcel.Recordset("fakulti") =
excelsht.Cells(kawalrow, i + 5) i = 1Next
Sambung ..
![Page 10: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/10.jpg)
excelwkb.Closeexcelapp.QuitSet excelsht = NothingSet excelwkb = NothingSet excelapp = NothingEnd Sub
Sambung …
![Page 11: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/11.jpg)
Berikut adalah merupakan larian aturcara tersebut
Untuk antaramuka utama frmPindahExcel
Detik permulaan Detik selepas butang ditekan
![Page 12: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/12.jpg)
Berikut adalah merupakan larian aturcara tersebut:
Untuk hasil yang ditulis dari excel ke dalam access
![Page 13: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/13.jpg)
Contoh 2: Penggunaan VB untuk memaparkan satu histogram untuk bilangan pelajar bagi setiap cgpa yang diperolehi.
Contoh yang akan ditunjukkan ini merupakan contoh penggunaan VBA yang sebenar. Butang-butang dalam contoh ini dibina dengan tujuan supaya anda boleh memahami arahan-arahan vb untuk VBA dengan lebih mudah.Data untuk memaparkan histogram tersebut di ambil dari access. Kemudian diletakkan di dalam excel. Dan kemudiannya menggunakan data dalam excel itu untuk menghasilkan histogram tersebut. Sumber contoh ini diperolehi dari internet tetapi
telah diubah suai
![Page 14: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/14.jpg)
Bina satu antaramuka seperti berikut :
Command1Command2Command3Command4Command6Command7Command8Command9Command10command11
frmExcel
Check1Check2Check3Check4Check6Check7Check8Check9Check10
Adodc1
Image1
![Page 15: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/15.jpg)
Tuliskan aturcara yang berikut :
1. Untuk pengishtiharan umum
Option ExplicitDim ExcelApp As Excel.ApplicationDim ExcelCht As Excel.ChartDim ExcelSht As Excel.WorksheetDim ExcelWkb As Excel.WorkbookDim MyExcel As Boolean
![Page 16: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/16.jpg)
Tuliskan aturcara yang berikut :
2. Untuk butang Run ExcelPrivate Sub Command1_Click()On Error Resume NextErr.ClearSet ExcelApp = GetObject(, "Excel.Application")If Err.Number <> 0 Then Err.Clear Set ExcelApp = CreateObject("Excel.Application") If Err.Number <> 0 Then MsgBox "Error: " & Err.Description Else MyExcel = True End IfElse MyExcel = FalseEnd IfCheck1.Value = vbCheckedCommand2.SetFocusEnd Sub
![Page 17: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/17.jpg)
3. Untuk butang Make Excel Visible
Private Sub Command2_Click()ExcelApp.Visible = Not ExcelApp.VisibleCheck2.Value = vbCheckedCommand3.SetFocusEnd Sub
4. Untuk butang Add A Workbook
Private Sub Command3_Click()Set ExcelWkb = ExcelApp.Workbooks.AddSet ExcelSht = ExcelWkb.Worksheets(1)Check3.Value = vbCheckedCommand4.SetFocusEnd Sub
![Page 18: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/18.jpg)
5. Untuk butang Populate A Sheet
Private Sub Command4_Click()Dim i As IntegerDim j As IntegerDim bil35keatas As IntegerDim bil3keatas As IntegerDim bil25keatas As IntegerDim bil2keatas As IntegerDim bilkurang2 As IntegerAdodc1.RecordSource = "select cgpa from
maklumatPel"Adodc1.Refresh
Sambungan …
![Page 19: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/19.jpg)
Sambung …Do While Adodc1.Recordset.EOF = FalseIf Adodc1.Recordset("cgpa") >= 3.5 And
Adodc1.Recordset("cgpa") <= 4# Then bil35keatas = bil35keatas + 1ElseIf Adodc1.Recordset("cgpa") > 3# And
Adodc1.Recordset("cgpa") < 3.5 Then bil3keatas = bil3keatas + 1ElseIf Adodc1.Recordset("cgpa") >= 2.5 And
Adodc1.Recordset("cgpa") <= 3# Then bil25keatas = bil25keatas + 1ElseIf Adodc1.Recordset("cgpa") >= 2# And
Adodc1.Recordset("cgpa") < 2.5 Then bil2keatas = bil2keatas + 1ElseIf Adodc1.Recordset("cgpa") < 2 Then bilkurang2 = bilkurang2 + 1End IfAdodc1.Recordset.MoveNextLoop
Sambungan …
![Page 20: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/20.jpg)
Sambung …i = 1For i = 1 To 2 For j = 1 To 5 If i = 2 Then If j = 1 Then ExcelSht.Cells(j, i) = bilkurang2 ElseIf j = 2 Then ExcelSht.Cells(j, i) = bil2keatas ElseIf j = 3 Then ExcelSht.Cells(j, i) = bil25keatas ElseIf j = 4 Then ExcelSht.Cells(j, i) = bil3keatas ElseIf j = 5 Then ExcelSht.Cells(j, i) = bil35keatas End If
Sambungan …
![Page 21: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/21.jpg)
Sambung …ElseIf i = 1 Then If j = 1 Then ExcelSht.Cells(j, i) = "1.5 ->1.99" ElseIf j = 2 Then ExcelSht.Cells(j, i) = "2.00->2.49" ElseIf j = 3 Then ExcelSht.Cells(j, i) = "2.50->2.99" ElseIf j = 4 Then ExcelSht.Cells(j, i) = "3.00->3.49" ElseIf j = 5 Then ExcelSht.Cells(j, i) = "3.50keatas" End If End If Next jNext iCheck4.Value = vbCheckedCommand6.SetFocusEnd Sub
![Page 22: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/22.jpg)
6. Untuk butang Create Chart
Private Sub Command6_Click()Set ExcelCht = ExcelWkb.Charts.AddExcelCht.ApplyDataLabels
xlDataLabelsShowLabelExcelCht.SetSourceData
ExcelSht.Range("a1:b5"), xlColumnsExcelCht.HasTitle = TrueExcelCht.ChartTitle.Characters.Text = "Bar Chart
dari Pangkalan Data"ExcelCht.HasAxis(1, 1) = TrueExcelCht.DepthPercent = 300ExcelCht.BarShape = xlCylinderExcelCht.SizeWithWindow = TrueCheck6.Value = vbCheckedCommand7.SetFocusEnd Sub
![Page 23: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/23.jpg)
7. Untuk butang Copy Chart
Private Sub Command7_Click()ExcelCht.ChartArea.SelectExcelCht.ChartArea.CopyImage1.Picture =
Clipboard.GetData(vbCFBitmap)Check7.Value = vbCheckedCommand8.SetFocusEnd Sub
8. Untuk butang Save WorkbookPrivate Sub Command8_Click()If Len(Dir(App.Path & "\test.xls")) <> 0 Then Kill App.Path & "\test.xls"End IfExcelWkb.SaveAs App.Path & "\test.xls"Check8.Value = vbCheckedCommand9.SetFocusEnd Sub
![Page 24: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/24.jpg)
9. Untuk butang Close WorkbookPrivate Sub Command9_Click()ExcelWkb.Close FalseCheck9.Value = vbCheckedCommand10.SetFocusEnd Sub
10. Untuk butang Quit Excel Private Sub Command10_Click()If MyExcel Then ExcelApp.Quit Set ExcelApp = Nothing MyExcel = FalseEnd IfCheck10.Value = vbCheckedCommand11.SetFocusEnd Sub
![Page 25: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/25.jpg)
Berikut adalah merupakan larian aturcara tersebut:
Larian aturcara apabila anda menekan empat butang pertama. Dibelakang adalah merupakan fail excel. Pada column B ialah bilangan pelajar yang mendapat cgpa bagi setiap range dalam column A
![Page 26: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/26.jpg)
Apabila butang create chart ditekan, excel akan menghasilkan satu chart di dalam ruang chart area terlebih dahulu.
![Page 27: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/27.jpg)
Apabila butang copy chart ditekan, vb akan menyalin chart dari chart area dalam excel dan kemudiannya akan diletakkan dalam image1 di dalam form tersebut.
![Page 28: BAB 12](https://reader035.fdokumen.site/reader035/viewer/2022081514/56814adc550346895db7f2c1/html5/thumbnails/28.jpg)
Apabila butang close workbook ditekan, vb akan menutup workbook. Jadi pada excel hanya tinggal excel sebab workbook telah ditutup. Tetapi chart tetap berada pada image1.