Sepertinya yang dibutuhkan oleh Timotius adalah bagaimana perlakuan coding
kita untuk menerima input data di datagrid atau flexgrid, jadi seperti
master dan detail, detail itemnya ada banyak, dan user bisa saja
input/edit/delete detail yang ada di flexgrid tanpa harus melalui proses
read and write ke database, betul begitu kan mas Timotius?

Kalo menurut saya flexgrid sendiri memiliki property rows dan row yang bisa
kita manfaatkan untuk menyimpan data detail tanpa harus simpan ke database.

Contoh:
FlexGrid1.TextMatrix(FlexGrid1.Row, 1) = vQty
FlexGrid1.TextMatrix(FlexGrid1.Row, 2) = vItemCode
dlsb

nanti pas proses simpan silahkan di loop aja, misal:
      With FGQuotes
      For X = 1 To .Rows - 1
         If .TextMatrix(X, 7) <> "" Then
            lsql = "SELECT * FROM PODetail WHERE ID = " & .TextMatrix(X, 7)
         Else
            lsql = "SELECT * FROM PODetail WHERE ID = 0"
         End If
         Set rsdQDet = New ADODB.Recordset
         rsdQDet.Open lsql, cnNMaster, adOpenDynamic, adLockOptimistic,
adCmdText
         If rsdQDet.RecordCount < 1 Then
            rsdQDet.AddNew
         End If
         If .TextMatrix(X, 1) <> "" Then
            rsdQDet!OrderQty = CDbl(.TextMatrix(X, 1))
         Else
            rsdQDet!OrderQty = 0
         End If
         JmlQty = JmlQty + rsdQDet!OrderQty
         If .TextMatrix(X, 2) <> "" Then rsdQDet!UnitDesc = .TextMatrix(X,
2)
         If .TextMatrix(X, 3) <> "" Then rsdQDet!ShortDesc = .TextMatrix(X,
3)
         If .TextMatrix(X, 4) <> "" Then rsdQDet!UnitCost =
CCur(.TextMatrix(X, 4))
         If .TextMatrix(X, 5) <> "" Then
            rsdQDet!TotalCost = CCur(.TextMatrix(X, 5))
         Else
            rsdQDet!TotalCost = 0
         End If
         If .TextMatrix(X, 6) <> "" Then rsdQDet!SONo = (.TextMatrix(X, 6))
         If .TextMatrix(X, 8) <> "" Then rsdQDet!LongDesc = (.TextMatrix(X,
8))
         SellAmt = SellAmt + CCur(rsdQDet!TotalCost)
         rsdQDet!PONo = txtVchNo
         rsdQDet.Update
      Next X

Untuk Heriyanto:
> Itu cuma menurut saya, apa ide lain yg bs membantu? trus saya juga ada
baca istilah locking, itu gimana ya? ada yg bisa share?

maksudnya locking ini locking recordset? terus masalahnya apa ya? sori masih
belum ngerti

Untuk Tarwin:
Menggunakan tabel Temp, kalo menurut saya malah memperberat kinerja program,
karena proses read/write jadi semakin banyak, lebih baik manfaatkan class
dan collection.

Oh ya satu lagi tips dari saya, jangan lakukan ini
>  Dim kon As New adodb.Connection
> Dim rs As New adodb.Recordset

Rubah dengan dim kon as adodb.connection dan dim rs as adodb.recordset

Semoga bermanfaat,
Ade Aan Wirama

Kirim email ke