Rabu, 03 Oktober 2012

Re: [belajar-access] tambah record

 

biasanya kalau begini saya gunakan antara do while  loop atau for next.
terutama kalau nambah datanya dari tabel lain.
atau kalau ngisi datanya berupa beberapa data yang berjejer dipisahkan oleh spasi, koma, titik koma.

contohnya.

mau nambah data keterangan ya.
bisa coba beberapa alternatif sbb:

1. data diletakkan di tabel lain. namanya tbl_Ket, fieldnya Ket.

    dim db as dao.database
    dim rsKet as dao.recordset
   
    set db = currentdb
    set rsKet=db.openrecordset("tbl_Ket")
    set rs = db.openrecordset("tblTemp")
   
' alternatif 1

    do while not (rsKet.BOF or  rsKet.EOF)   ' dijalankan kalau record di tabel tbl_Ket berisi data.
            rs.addnew
            rs!Ket=rsKet!Ket
            rs.Update
            rsKet.movenext
    loop

'alternatif 2
'pilih salah satu saja

     if not (rsKet.BOF or rsKet.EOF) then
           rsKet.movelast
           rsKet.movefirst
           
           for i=1 to rsKet.recordcount
                     rs.addnew
                    rs!Ket=rsKet!Ket
                    rs.Update
                    rsKet.movenext               
           next

     end if
   
    rs.close
    rsKet.close
    set rs=nothing
    set rsKet=nothing
    db.close
    set db=nothing


2. data di letakkan / dituliskan dalam sebuah text box. misalnya ditulis:
     ABC DEF GHI  --> perhatikan data dipisahkan dengan spasi.
    
     misalnya data dituliskan di form frm_Ket, di textbox txtKet.
     ada tombol IsiData.
     pada event IsiData_OnClick() dituliskan sbb:

     Private Sub IsiData_OnClick()

            x=split(txtKet.value,space(1)) --> karena dipisahkan dengan spasi 1
            for i=0 to ubound(x)
                    docmd.setwarnings false
                    docmd.runsql "INSERT INTO tblTemp (Ket) VALUES ('" & x(i) & "'" , true
                    docmd.setwarnings true
            next


     End Sub


3.  nomor 2 bisa juga di jadikan procedure
    
     Sub  IsiData( byval Ket as string)

            x=split(txtKet.value,space(1)) --> karena dipisahkan dengan spasi 1

            for i=0 to ubound(x)
                    docmd.setwarnings false
                    docmd.runsql "INSERT INTO tblTemp (Ket) VALUES ('" & x(i) & "'" , true
                    docmd.setwarnings true

     End Sub

    Nanti panggilnya tinggal sbb:
   
     IsiData "ABC DEF GHI"


Semoga bisa membantu.

salam hangat dan jabat erat,

MBA

On 10/3/2012 09:00, him mah wrote:
 

saya buat VBA untuk tambah record seperti ini

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("tblTemp")

rs.AddNew
rs!Ket = "ABC"
rs.Update

Set rs = Nothing
Set db = Nothing

kalau seperti di atas kita hanya menambahkan satu record saja, terus
bagaimana kalau menambhakan lebih dari 1 misal selain "ABC",
ditambahkan juga "DEF",GHI" dan lainnya

terus kalau ditambahakan nya dari tabel lainya bagaiamana misal tabel
"tblTEmp" untuk field [KET] ditambahkan dari field [ASAL] table
"tblData"


__._,_.___
Recent Activity:
SPAM IS PROHIBITED
.

__,_._,___

Tidak ada komentar:

Posting Komentar