solusi alternatif, adalah dengan bermain query.
hampir sama dengan cara yang telah anda gunakan, tetapi kita gabungkan fungsi vba ke dalam query.
aksan kurdin
On 5/18/2013 10:24 AM, aksan kurdin wrote:
hampir sama dengan cara yang telah anda gunakan, tetapi kita gabungkan fungsi vba ke dalam query.
Dari simulasi table1, akan kita buat query seperti berikut | |
| |
Dengan sql: SELECT Table1.kode, Table1.nama, getNomor([kode]) AS nomor1 FROM Table1 GROUP BY Table1.kode, Table1.nama, getNomor([kode]); | |
| |
Hasil running query, tampak bahwa nomor1 berisi gabungan dari nomor2 yang sesuai untuk P027 | |
| |
Berikut fungsi untuk getNomor: | |
Dim db As DAO.Database Dim rs As DAO.Recordset Dim strDummy As String On Error GoTo err_handle Set db = CurrentDb Set rs = db.OpenRecordset("SELECT nomor FROM table1 WHERE kode='" & kode & "'" _ , dbOpenForwardOnly, dbForwardOnly, dbPessimistic) Do While Not rs.EOF strDummy = strDummy & rs(0) & ", " rs.MoveNext Loop getNomor = Left(strDummy, Len(strDummy) - 2) rs.Close Set rs = Nothing Set db = Nothing Exit Function err_handle: MsgBox Err.Description, vbInformation, "Error #" & Err.Number Set rs = Nothing Set db = Nothing End Function |
aksan kurdin
On 5/18/2013 10:24 AM, aksan kurdin wrote:
tadaaa.... :
gambar adalah seribu kata, dikata2in sendiri ya :)
aksan kurdin
On 5/16/2013 1:49 PM, Mas Uki wrote:
Alhamdulillah, ternyata sudah saya temukan solusinya, dengan menambahkan kode pada event afterupdate seperti berikut :
Private Sub IDTransSJ_AfterUpdate()Dim db As DatabaseDim rs As RecordsetDim sql, sj As String
On Error Resume Next' agar form yang mengandung tabel dengan Multivalue tersimpan recordnya' sebab jika record belum disimpan, maka query dengan multivaluenya masih belum ada isinyaDoCmd.RunCommand acCmdSaveRecord
'buat recordset dari query hasil field multivalue yang sudah dicentang penggunaSet db = CurrentDbsql = "SELECT * FROM QDatadrPilihSJMaster"Set rs = db.OpenRecordset(sql)
'simpan isi field Nomor (NoSJ) tiap record kedalam variabelsj = ""With rsDo While Not .EOFsj = ![SJMASTER.NoSJ] & "|" & sj.MoveNextLooprs.CloseEnd With
'mengisikan field Nomor dari variabelNoSJ.Value = sj
End Sub
Best Regards,
SukionoPT. Kumala Kencana Cipta
Dari: Mas Uki <uqmas@yahoo.com>
Kepada: Group Access <belajar-access@yahoogroups.com>
Dikirim: Rabu, 15 Mei 2013 16:00
Judul: [belajar-access] QUERY MENJADIKAN ISI BEBERAPA RECORD MENJADI SATU RECORD
Assalamu'alaikum Wr. Wb.
Para Master Access, mohon pencerahan dan solusi, saya sedang membantu bagian akunting dengan membuat aplikasi kecil untuk membuat Invoice dan Faktur Pajak. Salah satu kriterianya adalah jika ada Customer dengan beberapa Surat Jalan sekaligus, maka beberapa Surat Jalan dapat dijadikan satu Invoice, untuk hal ini saya menggunakan fitur Multivalue yang ada di Access 2007 sehingga nanti pengguna tinggal centang Surat Jalan mana saja yang mau diproses jadi Invoice. Dengan ilustrasi data hasil query multivalue berikut, bagaimana caranya agar field Nomor isinya digabung menjadi satu (dengan pembatas karakter khusus)?
Hasil query dari pemilihan MultivalueKode Nama NomorP027 PT. KRISTAL BALI LESTARI 2013/SJ/05/0902P027 PT. KRISTAL BALI LESTARI 2013/SJ/05/0928P027 PT. KRISTAL BALI LESTARI 2013/SJ/05/0944Ingin hasilnya menjadi :
Kode Nama NomorP027 PT. KRISTAL BALI LESTARI 2013/SJ/05/0902|2013/SJ/05/0928|2013/SJ/05/0944
Best Regards,
Sukiono
PT. Kumala Kencana Cipta
www.kumalahome.com
Tidak ada komentar:
Posting Komentar