Access
 sql >> Teknologi Basis Data >  >> RDS >> Access

Membuka atau Menautkan Teks atau Excel sebagai Sumber Data di Microsoft Access

Membuka atau Menautkan Teks atau Excel sebagai Sumber Data di Microsoft Access

Access adalah alat fenomenal untuk bekerja dengan banyak sumber data. Anda mungkin sudah lama mengetahui bahwa Anda dapat dengan mudah mengimpor atau mengekspor data dalam beragam format. Namun, kami memiliki skenario di mana kami perlu memproses data dari sumber data eksternal. Pemrosesan sering berjalan sehingga mengimpor data akan mengasapi file front-end dengan cepat. Selain itu, dalam situasi ini, membuat salinan kedua dari file Access sebagai database sementara untuk menghindari kembung bukanlah pilihan yang tepat. Pilihan apa yang kita miliki? Di situlah kami melihat kelangkaan informasi tentang membuka atau menautkan ke sumber data non-relasional. Jadi, mari selami topik ini secara mendalam.

Seri blog ini bertujuan untuk mengisi celah yang menganga dalam dokumentasi Microsoft tentang membuka atau menautkan ke teks atau Excel sebagai sumber data di aplikasi Access. Connectionstrings.com dan situs lain menyediakan beberapa remah roti. Anda juga biasanya dapat menemukan beberapa perilaku dengan menggunakan panduan Access dan kemudian memeriksa objek setelahnya. Namun, menebak-nebak tidak terlalu berguna. Oleh karena itu, rangkaian artikel ini akan membahas tentang cara menggunakan file Excel dan Teks sebagai sumber data tanpa harus mengimpor atau mengekspor data.

Harap dicatat bahwa seri tidak akan mungkin terjadi tanpa bantuan Dan Haught dan Jim Ferguson, yang ikut menulis Panduan Programmer Mesin Database Microsoft Jet. Meskipun buku itu sudah lama tidak dicetak, buku ini masih berharga jika Anda sering bekerja dengan DAO.

Akses dan sumber data non-relasional

Access selalu mendukung penggunaan Indexed Sequential Access Method (ISAM) sebagai sumber data potensial, yang memungkinkannya untuk mengimpor, menautkan, atau mengekspor ke sumber data non-relasional seperti file teks atau spreadsheet Excel dan bahkan format file lain seperti Exchange, dBASE atau FoxPro. DAO memungkinkan karena memiliki driver ISAM yang dapat bekerja dengan format tersebut. Namun, saya akan fokus pada file teks dan spreadsheet Excel karena mereka adalah sumber yang lebih umum di mana kita membutuhkan Access untuk bekerja. Jika semua yang pernah Anda lakukan adalah mengimpor data menggunakan tab Data Eksternal melalui Access, itu mungkin tampak ajaib tetapi pada kenyataannya, semua fitur Access tersedia bagi kami sebagai programmer di tingkat DAO.

Jadi mari kita lupakan bahwa penyihir itu ada. Mari kita lupakan ikon mengilap pada pita. Mari kita lupakan bahwa ada tabel yang ditautkan. Mari kita gunakan kode VBA untuk bekerja dengan sumber data, dari udara tipis. Bisakah kita? Sangat. Pertama, kita akan melihat perbedaan antara menautkan dan membuka sumber data.

Menautkan vs. Membuka

Untuk membantu dengan terminologi, kita perlu membuat perbedaan antara menghubungkan vs. pembukaan . Menautkan berarti kita membuat tabel tertaut yang sekarang menjadi "tabel" Access yang bisa kita gunakan seperti tabel Access lainnya. Dengan demikian, ini adalah objek permanen yang ditentukan dalam aplikasi Access. Sebaliknya, pembukaan adalah ketika kita mengakses sumber data secara langsung dengan menggunakan OpenDatabase DAO metode. Sesuai sifatnya, membuka sumber data biasanya akan dilakukan melalui kode VBA seperti yang akan Anda lihat sebentar lagi.

Menyiapkan sampel dan kode

Karena seri ini tentang memahami detail seluk beluk tentang bagaimana Access berinteraksi dengan sumber data tersebut, pertama-tama kami akan fokus pada pembukaan alih-alih menautkan di sini. Jadi, bagaimana kita membuka spreadsheet Excel? Tentunya, itu bukan database? Mari kita siapkan contoh minimum untuk memulai. Dalam sebuah folder, C:\Links , kita akan membuat spreadsheet Excel dan file database Access, bernama Products.xlsx dan Sample.accdb , masing-masing:

Products.xlsx adalah spreadsheet sederhana dengan hanya satu lembar dengan konten berikut:

Dengan ini, mari tambahkan kode VBA di Sample.accdb . Dalam modul standar:

Public Sub OpenExcel()
    Dim db As DAO.Database
    
    Set db = DBEngine.OpenDatabase(vbNullString, False, False, "Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=C:\Links\Products.xlsx")
    
    Dim tdf As DAO.TableDef
    For Each tdf In db.TableDefs
        Debug.Print tdf.Name
        
        Dim fld As DAO.Field
        For Each fld In tdf.Fields
            Debug.Print fld.Name,
        Next
        Debug.Print
        
        Dim rs As DAO.Recordset
        Set rs = tdf.OpenRecordset
        Do Until rs.EOF
            For Each fld In rs.Fields
                Debug.Print fld.Value,
            Next
            Debug.Print
            rs.MoveNext
        Loop
    Next
End Sub

Jika kita menjalankan kode, kita akan mendapatkan output berikut di jendela langsung kita:

Products      Count         
Apples         3            
Bananas        5            
Figs           8            

Jadi meskipun Excel bukan "database" (dan jika Anda menggunakan Excel sebagai database, malu ), kita masih bisa berpura-pura itu adalah "database" dan beralih melalui "tabel" dan "catatan" menggunakan objek DAO yang sudah dikenal. Semua keajaiban berasal dari string koneksi ini:

Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=C:\Links\Products.xlsx

Tapi itu tidak harus ajaib. Seri ini akan membedah bagian-bagian dari string koneksi untuk driver Excel dan file teks. Jadi mari kita mulai dengan membandingkan string koneksi ODBC yang mungkin lebih Anda kenal.

Jenis Sumber Data

Jika Anda telah menautkan ke sumber data ODBC, Anda mungkin memperhatikan bahwa string koneksi ODBC biasanya terlihat seperti ini:

ODBC;DRIVER=...;SERVER=...;DATABASE=...;

Ingin tahu mengapa selalu dimulai dengan ODBC ? Bagian pertama itulah yang digunakan DAO untuk mengidentifikasi jenis sumber. Namun, karena Excel bukan database ODBC, kami harus menggunakan Excel 12.0 Xml untuk menunjukkan bahwa DAO perlu menggunakan driver Excel tertentu. Sintaks string koneksi selanjutnya dipengaruhi oleh driver mana yang kita gunakan di bagian pertama string koneksi.

Berikut sebagian daftar kemungkinan jenis sumber data yang akan dikenali oleh MS Access:

  1. Excel 8.0 :97-2003 file xls
  2. Excel 12.0 :file xlsb
  3. Excel 12.0 Xml :file xlsx
  4. Text :Semua file teks

Ada lebih banyak sumber data, termasuk SharePoint, Exchange, atau FoxPro, tetapi saya tidak akan membahasnya. Meski begitu, ini menunjukkan bahwa Access mampu bekerja dengan sumber-sumber itu seperti database dan itu bisa memungkinkan kita menggunakan DAO untuk membaca kontennya. Perhatikan bahwa ketika kami menggunakan sumber data non-relasional, tidak semua operasi dapat didukung sepenuhnya. Misalnya, Anda mungkin tidak diizinkan untuk mengedit baris yang ada meskipun Anda dapat menyisipkan baris.

Namun, satu tantangan dengan membuka atau menautkan ke sumber data berarti Anda tidak bisa hanya mengimpor data, lalu mengedit skema setelahnya sesuai dengan kebutuhan Anda. Oleh karena itu, Anda mungkin menemukan bahwa skema default yang Anda dapatkan saat menautkan tidak sesuai dengan yang Anda inginkan. Untuk alasan itu, pemahaman mendalam tentang string koneksi akan menjadi penting. Oleh karena itu, Anda akan mempelajari lebih lanjut tentang detail string koneksi untuk Excel dan file teks dalam beberapa artikel berikutnya.

Kesimpulan

Anda melihat bahwa sebagai alternatif untuk mengimpor data eksternal, kami dapat memilih untuk menautkan atau bahkan membuka sumber data eksternal menggunakan DAO. Kemampuan untuk menautkan atau membuka sumber data eksternal sangat kurang dimanfaatkan. Namun, kemampuan untuk menautkan atau membuka tidak boleh diabaikan karena ini dapat membuka skenario baru seperti menghindari kembung akibat impor, terutama di lingkungan yang terkunci. Pada artikel berikutnya, saya akan membahas parameter berbeda yang digunakan oleh driver Excel untuk membuat string koneksi yang valid. Dalam artikel berikut, saya akan melihat driver file teks dan parameter koneksi. Di artikel terakhir, kami akan menggabungkan semuanya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengubah Warna Latar Header Formulir di Access 2016

  2. Hindari Kesalahan Umum Ini Saat Menjalankan Prosedur Tersimpan di MS Access

  3. BREAKING NEWS:Microsoft SQL Server Native Client 18 Baru Dirilis!

  4. Panduan 7 Langkah untuk Menggunakan Access dengan Azure Multi-Factor Authentication

  5. Bagaimana Kami Menggunakan Basis Data dalam Kehidupan Sehari-hari