Tabel yang ditautkan bisa sangat berguna (meskipun tentu saja tidak setiap saat) - terutama ketika Anda berurusan dengan info eksternal yang berubah secara teratur. Contoh tipikal mungkin terjadi ketika pemasok memberi Anda akses ke file harga bulanan mereka saat ini. Tapi apa yang terjadi ketika mereka mengeluarkan file bulan depan, dan nama file berubah dari "Pricelist-01-01-2016" menjadi "Pricelist-01-02-2016"? Hal pertama yang akan terjadi adalah tautan Anda akan rusak, jadi Anda harus memperbaruinya secara manual. Setiap kali mereka mengganti nama file. Itu juga berlaku untuk nama tabel (tentu saja!). Adakah cara untuk melakukan ini dengan cepat dan mudah seperti yang Anda tanyakan? Kami senang Anda bertanya - baca terus dan cari tahu caranya…
Setting adegan - skenario
Dalam artikel ini, saya akan menggunakan skenario fiksi - tapi yang saya yakin Anda akan segera mengenali!
Setiap bulan, perdagangan Acme mengirimkan kepada kami daftar harga terbaru untuk semua barang habis pakai yang digunakan di DataNumen. Agar kami tahu berapa banyak yang akan kami belanjakan untuk alat tulis setiap bulan, kami menautkan ke file itu di database manajemen kantor kami.
Masalahnya adalah, meskipun format file tetap sama, nama file berubah setiap bulan. Bulan lalu namanya adalah “stationary costs Jan 2017.xls”, bulan ini menjadi “stationary costs Feb 2017.xls”.
Tidak banyak perubahan, saya yakin Anda akan setuju, tetapi kecuali kita mengalami kesulitan untuk mengganti nama file secara manual (setelah kita memindahkan file lama atau menghapusnya), atau melalui proses menautkan ulang tabel melalui manajer tabel tertaut di Access.
Karena kami tidak ingin melakukan ini, kami membuat kode berikut untuk melakukannya - jauh lebih mudah karena saya yakin Anda akan melihatnya:
Public Sub UpdateLink (tableName As String, newFileName As String) Dim objDB As Database Dim objTableDef As TableDef Dim newConnect as String Set objDB = CurrentDb Set objTableDef = objDB.TableDefs(tableName) 'format of the connection string in our case, for example, is: ' Excel 5.0;HDR=YES;IMEX=2;DATABASE=File name including path and extension type newConnect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & newFileName objTableDef.Connect = newConnect objTableDef.RefreshLink Set objTableDef = Nothing Set objDB = Nothing End Sub
Menjelaskan kode
Seperti yang Anda lihat, kami meneruskan nama tabel (yang ditautkan), bersama dengan nama file baru yang harus ditautkan ke tabel tersebut. Nama file harus mencakup jalur lengkap ke file tersebut. Salah satu area potensial yang mungkin Anda kesulitan di awal adalah mendapatkan format yang benar untuk string koneksi yang akan dimasukkan ke dalam variabel “newConnect”. Meskipun ada banyak sumber untuk mengetahui format yang benar, salah satu yang termudah yang saya temukan adalah dengan melihat string koneksi dari tabel yang ditautkan saat ini. Untuk melakukan itu, cukup tambahkan baris berikut tepat di bawah baris “Set objTableDef = objDB.TableDefs(tableName)”:
Debug.Print (objTableDef.Connect)
Itu akan mencetak string koneksi yang ada ke jendela debug / langsung dari editor kode (jika itu belum terlihat, tekan CTRL-G dari dalam layar editor kode VBA untuk mengalihkan visibilitas dari jendela Immediate sebelum menjalankan kode.
Sebuah peringatan
Seperti biasa, jangan lupa bahwa meskipun cuplikan kode di atas dapat membantu Anda menghemat waktu saat Anda perlu mengubah file yang ditautkan ke tabel, yang tidak dapat dilakukannya adalah membantu Anda jika Anda menemui Mengakses kerusakan file, jadi pastikan Anda menyimpan cadangan dan tahu ke mana harus menyerahkannya jika semuanya gagal.
Pengantar Penulis:
Mitchell Pond adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk memperbaiki kerusakan SQL dan unggul dalam produk perangkat lunak pemulihan. Untuk informasi lebih lanjut kunjungi www.datanumen.com