Baca Juga
Sebelumnya alangkah baiknya Anda simak posting saya tentang Autonumber pada Datareport pada link dibawah ini :
Pada posting tersebut saya sampaikan link download project visual basic 6.0 membuat autonumber pada Datareport
Project tersebut adalah contoh membuat nomor urut pada Datareport dengan koneksi secara manual sehingga harus mengkoneksikan ulang setiap berganti lokasi database (pindah komputer), koneksi ke tabelnya pun menggunakan pengaturan properties secara manual sehingga penomoran tidak berfungsi ketika data di Filter.
Dengan menggunakan contoh project yang sama saya sedikit memodifikasinya agar lebih fleksibel untuk digunakan, yaitu dengan menggunakan coding untuk koneksi dan commandText dataenvironmentnya.
Kurang lebih seperti ini codingnya :
Pada Form1
Private Sub Combo1_Click()
Adodc2.RecordSource = "SELECT " + _
"1 + (SELECT COUNT(*) FROM (select * from nilai where kelas='" + Combo1.Text + "') where nama < a.nama) AS AUTONUM, " + _
"a.nama AS NAME, a.kelas as KELAS, a.nilai as NILAI " + _
"FROM nilai a where a.kelas='" + Combo1.Text + "' " + _
"ORDER BY nama "
Adodc2.Refresh
DataGrid1.Refresh
End Sub
Private Sub Command1_Click()
DataEnvironment1.Commands("command1").CommandText = Adodc2.RecordSource
Set DataReport1.DataSource = DataEnvironment1
DataReport1.Show
End Sub
Private Sub Form_Load()
Combo1.Clear
Adodc1.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;" + _
"Data Source=" + App.Path + "\Data1.mdb;" + _
"Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select distinct(kelas) from nilai"
Adodc1.Refresh
Do Until Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset(0)
Adodc1.Recordset.MoveNext
Loop
Adodc2.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\Data1.mdb;Persist Security Info=False"
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "SELECT " + _
"1 + (SELECT COUNT(*) FROM nilai where nama < a.nama ) AS AUTONUM, " + _
"a.nama AS NAME, a.kelas as KELAS, a.nilai as NILAI " + _
"FROM nilai a " + _
"ORDER BY nama "
Adodc2.Refresh
DataGrid1.Refresh
End Sub
Pada Form1
Private Sub Combo1_Click()
Adodc2.RecordSource = "SELECT " + _
"1 + (SELECT COUNT(*) FROM (select * from nilai where kelas='" + Combo1.Text + "') where nama < a.nama) AS AUTONUM, " + _
"a.nama AS NAME, a.kelas as KELAS, a.nilai as NILAI " + _
"FROM nilai a where a.kelas='" + Combo1.Text + "' " + _
"ORDER BY nama "
Adodc2.Refresh
DataGrid1.Refresh
End Sub
Private Sub Command1_Click()
DataEnvironment1.Commands("command1").CommandText = Adodc2.RecordSource
Set DataReport1.DataSource = DataEnvironment1
DataReport1.Show
End Sub
Private Sub Form_Load()
Combo1.Clear
Adodc1.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;" + _
"Data Source=" + App.Path + "\Data1.mdb;" + _
"Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select distinct(kelas) from nilai"
Adodc1.Refresh
Do Until Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset(0)
Adodc1.Recordset.MoveNext
Loop
Adodc2.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\Data1.mdb;Persist Security Info=False"
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "SELECT " + _
"1 + (SELECT COUNT(*) FROM nilai where nama < a.nama ) AS AUTONUM, " + _
"a.nama AS NAME, a.kelas as KELAS, a.nilai as NILAI " + _
"FROM nilai a " + _
"ORDER BY nama "
Adodc2.Refresh
DataGrid1.Refresh
End Sub
Pada DataReport1
Private Sub DataReport_QueryClose(Cancel As Integer, CloseMode As Integer)
If DataEnvironment1.rsCommand1.State = adStateOpen Then
DataEnvironment1.rsCommand1.Close
End If
End Sub
coding pada datareport diatas digunakan untuk menutup recordset, sehingga saat datareport dibuka lagi akan menggunakan recordset yang baru. (refresh)
Bingung kan? hehehe..
saya juga, download saja langsung sourcecodenya pada link dibawah ini :
1. http://downloads.ziddu.com/download/23967939/autonumber_pada_datareport2.rar.html atau
2 Tanggapan
gan, untuk data report scroll mousenya kok nggak aktif ya? apakah ada kode khususnya ya..??