Hmm, sudah dibuat belum DNS di ODBC nya Pak? Langkah2 Membuat DNS Baru Melalui ODBC ke SQL Server:
1. Buatlah sebuah DNS baru. Caranya, jika OS nya Win98/NT, klik Start => Settings => Control Panel => Data Sources (ODBC). Jika OS nya 2000/XP, klik Start => Settings => Control Panel => Administrative Tools => Data Sources (ODBC). Tapi kalau ingin membuat DNS menggunakan code VBA, bisa mengunjungi: http://www.mvps.org/access/tables/tbl0014.htm , tapi ini nanti saja kalau sudah berhasil menggunakan cara yang Insya Allah akan saya jelaskan ini. 2. Akan muncul kotak dialog "ODBC Data Source Administrator". Klik tab "System DSN". Klik tombol "Add". 3. Pilih "SQL Server". Klik tombol "Finish". 4. Akan muncul kotak dialog "Microsoft a New Data Source to SQL Server". 5. Pada field "Name", isi nama DNS yang Anda inginkan (bebas). Kemudian pada combo box "Server", pilih nama Servernya. Setelah selesai, klik tombol Next. 7. Terdapat dua pillihan, yakni secara Mixed Mode dan secara Authentication. Pilih pilihan: "With Windows NT authentication ..." 8. Beri tanda centang pada checklist: "Change the default database to:", lalu pilih nama databasenya yang hendak Anda hubungkan ke program Anda. 9. Klik tombol Finish. 10. Klik tombol "Test Data Sources". Jika muncul pesan pada line paling bawah : "TESTS COMPLETED SUCCESSFULLY!", berarti proses berhasil, jika gagal, maka harap di check kembali semua langkahnya, apakah sudah benar. 11. Jika sudah berhasil, Klik tombol "OK". Nah, barulah Bapak ambil data dari DNS yang sudah dibuat ini. Opi. --- In belajar-excel@yahoogroups.com, "vcwalet haris" <[EMAIL PROTECTED]> wrote: > > Hi.. All > > Terima kasih banyak untuk Mbak Siti Vi, sebetulnya itu yang saya maksud, > tapi saya coba googling > dan saya menemukan system ODBC. Tapi sampai saat ini saya coba praktekan > selalu error . > ex. saya pake odbc[dataas400] Uid[anu] pass[anu] server as400. > > <goog_1225930566688> > http://www.experts- exchange.com/Programming/Languages/Visual_Basic/Q_23012565.html > > Sub Database_connect() > > Dim dbEng As dbengine > Dim oRs As Recordset > Dim oRow As Range > Dim oWspc As Workspace > Dim oConn As Connection > Dim oQuery As QueryDef > > strConnection = "ODBC;DATABASE=databasename;UID=userid;PWD=password;DSN=DSNname" > strSQL = "SELECT * FROM accounts where term like " & """VS%""" > Debug.Print strSQL > Set dbEng = CreateObject("DAO.DBEngine.35") > Set oWspc = dbEng.CreateWorkspace("ODBCWspc", "", "", dbUseODBC) > Set oConn = oWspc.OpenConnection("DSNname", , True, strConnection) > Set oQuery = oConn.CreateQueryDef("tmpFindAccount") > > oQuery.Sql = strSQL > Set oRs = oQuery.OpenRecordset > If oRs.EOF = True Then > MsgBox "No More Records" > Else > Worksheets("Sheet2").ComboBox1.AddItem oRs.Fields("fieldname") > End If > > oRs.Close > oQuery.Close > oConn.Close > oWspc.Close > Set oRs = Nothing > Set dbEng = Nothing > > End Sub > > Mohon Pencerahannya...Terima kasih sebelumnya. "Maaf Kalau pertanyaannya > agak kurang berbobot- maklum newbee" > > Mr.VcWAlet > > Open in New Window<http://www.experts- exchange.com/codeSnippetPopup.jsp?csid=10286> > Select > All <javascript:selectElementById('codeSnippet10286');> > 2008/11/6 siti Vi <[EMAIL PROTECTED]> > > > maaf baru bisa kembali hari ini, dan maaf akan bicara agak kepanjangan > > > > begini lho yaa ...., > > (kita coba "dudukkan" masalah-per-masalah ke "tempatnya" masing- masing, > > agar kita tidak confused....): > > > > *< 1 >*. Mengenai koneksi ke server (setting di odbc) dan query / urusan > > yg menghasilkan tertulisnya sourcedata di sheet, biarlah tetap seperti yg > > telah ada / diselengarakan oleh pak / mbak vcwalet harris; juga mengenai > > refreshing data nya secara berkala (atau otomatis setiap saat / on line?) > > Pokoknya data dari database di server itu kita anggap sudah berada di suatu > > sheet di wokbuk ini (kita anggap di sheet 'hasil impor' ) > > > > Jadi tahap berikutnya (2), si makroh atau apapun namanya, hanya akan > > memproses berdasarkan data di SHEET, TIDAK lagi ada istilah makro mengambil > > data dari server; atau combobox mengambil kriteria dari database di server; > > karena urusan "hadirnya data ex database server ke sheet di wokbook ini" > > sudah berupa tahap / paket tindakan tersendiri, yg selama ini sudah jalan / > > dikerjkan oleh pak pcwalet dgn hasil baik.. > > Mudah-mudahan pak pcwalet harris sependapat dengan siti. > > > > *< 2 >* Urusan selanjutnya adalah bgmana tabel data ex imporan tsb > > (selanjutnya kita sebut "sourcedata") diolah sehingga menjadi REPORT seperti > > tercontohkan di sheet 'form'. Di tahap ini terkandung 2 SubUrusan: > > > > *2A: subUrusan ComboBox dan List di dalamnya* > > Di sheet 'form' ada sebuah combobox ber-nama-generik: ComboBox1. > > Si Combo mauknya selalu berisi SourceData khusus kolom 1 (Field SKEY) > > tetapi tanpa memuat data kembarannya ( =ini kita sebut: List of Unique > > Values) > > > > Jadi zelas-nya di sini ada kerjaan menyaring sourcedata kolom 1 sehingga > > hanya terambil Unique-Values-nya saja. Ini perkara gampang, terutama bila > > kita sudah punya / menulis FUNGSI untuk mengotomatiskan pengambilannya > > (lihat >> Prosedur Function UniqValues; di module 'FIltering' ) > > > > Prosedur Fungsi (UDF) ini akan menghasilkan daftar unique-values tetapi > > hanya diingat dalam memory sebagai variable: array 1 dimensi. > > Truz.. berapa bijik elements-nya ? tergantung keadaan tabel sourcedata > > saat wokbook dibuka. Elemen-elemen dlm Array itulah yg akan dituangkan ke > > List milik si Combo. > > Dengan adanya FUNGSI buatan dewek tsb maka menciptakan list of unique > > values berdasarkan Kolom1 pada source data DAN langsung menuangkan ke List > > dlm ComboBox, perintahnya sungguh singkat: > > ComboBox1.List = UniqValues(KolomSatuSourceData) > > maka seketika isi perut si Combo berisi beberapa elements data yg kita > > istilahkan List of Unique Values tadi. > > Untuk keadaan data seperti contoh, hasilnya adalah : > > "SSHIN", "SKY TAPE", "GUDANG", "DSU IND" > > > > Jika diadakan refreshing sourcedata, sebaiknya pengguna mengklik sheet lain > > selain FORM lalu kembali ke sheet FORM lagi; karena setiap sheet form > > diaktifkan sudah dicegat dengan prosedur pengisian kembali List ke ComboBox. > > Prosedur Sub untuk mengisi / mengisi kembali List pada ComboBox bisa > > dilihat di module Filtering; prosedurnya bernama "FillComboList". > > > > Spt telah siti sebutkan di atas, prosedur ini KITA SURUH otomatis jalan > > jika ada events: > > 1 = wokbook dibuka > > 2 = sheet form diaktifkan. > > (Lihat di module Sheer 'form' dan module ThisWorkbook) > > Jika List dlm ComboBox telah ada isinya, List tsb dapat kita tampakkan > > SalahSatu-nya dengan mengklik DropDownButton lalu memilih nya. > > > > Setiap VALUE milik ComboBox diubah, dikehendaki Report tersusun lagi, > > berdasarkan VALUE (teks yg sedang nampak di wajah si Combo). > > Kehendak ini akan diurusi (kalau bisa: dipenuhi) oleh "prosedur" lain lagi. > > > > *2B: subUrusan Penyusunan Report * > > Sekarang kita obrolkan "urusan penulisan data" di areaReport pada sheet > > form. > > Kita buat fixed saja: yg dimaksud areaReport adalah range yg > > PojokKiriAtasnya = cell A8 pada sheet 'form', selebar 8 kolom; Jumlah row = > > dinamis mengikuti hasil penyaringan; dan ini tentu tergantung pula kpd > > keadaan di source data. > > > > Jika ComboBox diUBAH isi nya (dengan dropdown button yg ada) maka > > makro akan mengerjakan : > > (1). menganggap isi ComboBox = Kriteria penyaringan > > (2). menyaring Records di sourcedata; jika KOLOM-1 pada records tsb > > berisi data yang SAMA dengan KRITERIA, maka records tsb DIAMBIL dan ditulis > > di area report; tetapi hanya 7 Kolom yaitu kolom-kolom: 7, 12, 14, 16, 17, > > 18, 19 saja; Sedangkan kolom ke 8 = adalah hasil kali dua kolom > > sebelumnya). > > (3). Kedua tahap pekerjaan itu dilakukan setelah lebih dahulu menghapus > > areaReport. > > > > Prosedur untuk melaksanakan penyaringan sekaligus penulisan ke areaReport > > ini, tertulis sbg prosedur Sub bernama "FileringForReport" > > Seperti lazimnya standar program pemfilteran data, di sini kita > > implementasikan dengan Looping yg men-scan baris-demi-baris di source data. > > Jika kolom 1 pada sourcedata (pada baris yg sedang di-scan) =cocok dengan > > Kriteria, beberapa cell-kolom pada baris itu diSALIN dan dituliskan ke > > AreaReport. > > > > Prosedur ini akan jalan bila memang DISURUH JALAN (dengan menyebut Namanya) > > dan diberi argument, sedangkan Argumentnya berupa data KRITERIA yaitu teks > > yg sedang menampakkan diri di wajah ComboBox1. > > > > Makanya, si combobox setiap dia berubah isinya, perintah yg ada didalamnya > > adalah: > > memanggil prosedur FilteringForReport; sambil TIDAK PERNAH LUPA mengirim > > Argument berupa teks yg sedang muncul pada dirinya > > Call FilteringForReport(ComboBox1.Value) > > Lihat procedures di module sheet form. > > =============================== > > > > Yah.. hanya begitulah jalan ceritaknya, sederhana saja. > > Sederhana, karena sebetulnya tanpa makro pun perkerjaan spt ini dapat > > dilakukan dengan FORMULA-FORMULA maupun oleh AutoFilter, atau > > AdvancedFilter. > > > > Semua itu masih tergantung sourcedata nya > > Jika sourcedata = bagus, strukturnya konsisten dan datanya baik (misal > > tidak tercampur dengan ekor berupa spasi yg tidak kelihatan mata), maka > > insyaallah makro mampu menjalankan tugas sesuai keinginan. > > > > Tentu saja, masih ada kemungkinan yg belum dapat diduga pada saat code > > ditulis; karena contoh data kadang belum mewakili faktual data sepenuhnya. > > Kemungkinan tsb ada yg bisa menimbulkan error-message. Dan bila terjadi, > > mohon jangan ragu mengirim kabar ke milis ini; temans-temans di sini akan > > mencoba membantu mengatasinya, asal disertai penjelasan yg memadai, > > insyaallah.. > > > > jurangmangu, 4 nov 2008 > > siti > > > > > > > > > > 2008/11/4 vcwalet haris <[EMAIL PROTECTED]> > > > >> Terima kasih Bu Siti Vi > >> mungkin seperti ini [attc] > >> Sebelumnya > >> > >> 2008/11/1 siti Vi <[EMAIL PROTECTED]> > >> > >> maaf pak haris, > >>> jika ini sebuah pertanyaan; > >>> data yg hanya berupa gambar itu belum dapat dijadikan bahan > >>> oleh para calon penolong untuk bertindak (membuat saran-saran' > >>> atau membuatkan contoh makro nya) > >>> karena IMHO, memanggil data dari server (atau dari source lain) > >>> bukan kah harus mengetahui struktur datanya, nama field, jenis data tiap > >>> field dsb... > >>> > >>> barangkali, jika pak haris dapat memberikan contoh data yg sudah diimpor > >>> ke sheet excel, lalu menjelaskan hasil seperti apa yg dikehendaki, > >>> mungkin para penolong tidak sulit seperti ketika hanya *punya 'gambar > >>> sheet > >>> kosong dan gambar combobox" *seperti sekarang ini..* > >>> > >>> *terima kasih... > >>> > >> > > > > >