Kamis, 23 Mei 2013

[belajar-access] Access Table Array

 

Dear All,

Saya bikin database projection cost, yang mana kita langsung dapat melihat proyeksi sampai 5 tahun kedepan (60 bulan). saya punya 50000 asset yang akan di proyeksi kan.

Script nya :

Sub Projection_Cost_A()
on error resume next
dim db as database
dim dbr1 as recordset
dim dbr2 as Recordset
dim dbr3 as Recordset
dim tbl1 as tabledef
dim arr1 as Variant
dim arr2 as Variant

dim mulai as long
dim selesai as long
dim Rw as long
dim Cl as long
dim SCol as long
dim Kolom as string

set db = Currentdb()
set dbr1 = db.OpenRecordset("Select * from table1")
set dbr2 = db.openrecordset ("Select MAX(table2.[disposal date]) as [disposal date] from table2")

set tbldef1 = db.createtabledef("Table3")
for Cl = 0 to dbr1.fields.count
with tbldef1
.fields.append .CreateField(dbr1.fields(Cl).name, dbr1.fields(Cl).Type)
end with
next Cl

mulai = format("1/1/" & year(date),0)
selesai = format(dbr2![disposal date],0)

for scol = mulai to selesai
if format(scol,"d") = 1 then
kolom = format(scol,"mmm-yy")
with tbldef1
.fields.append .createtable(kolom, dbCurrency)
end with
next scol

db.tabledef tbldef1 'Jadilah table3
'Kemudian mengisi data ke table
set dbr3 = db.openrecordset("Select * from table3")
dbr1.movelast
dbr1.movefirst
arr1 = dbr1.GetRows(dbr1.RecordCount)'Load Data ke table Array
for Rw = 0 to Ubound(Arr1,2)
dbr3.AddNew
For Cl = 0 to Ubound(Arr1,1)
dbr3.fields(Cl).Value = arr1(Cl,Rw)
next Cl
dbr3.Update
dbr3.MoveNext
Next Rw

Menghitung Cost dan memasukkan ke kolom bulan juga menggunakan looping dan jika proyeksi kost jatuh di bulan yang sama dengan kolom maka cost akan di isi ke setiap kolom nya...

Dengan cara ini ternyata cukup lambat, jika sampe Not Responding maka akan sangat lama sekali, tadinya saya fikir saya bisa membuat data lebih cepat dari query karena malas memasukkan formula banyak ke setiap fields nya.

Mohon masukkan nya....

Salam,

Muhammad Naf'an

__._,_.___
Reply via web post Reply to sender Reply to group Start a New Topic Messages in this topic (1)
Recent Activity:
SPAM IS PROHIBITED
.

__,_._,___

Tidak ada komentar:

Posting Komentar