thiennamlong > 11-05-15, 09:50 PM
maidinhdan > 11-05-15, 11:32 PM
(11-05-15, 09:50 PM)thiennamlong Đã viết: Với code của bạn tôi vẫn chưa xoá được. nó báo lỗi ở dòng: DoCmd.DeleteObject acTable, r!ForeignName
Tôi gửi link file nhờ tiền bối coi dùm nhé:
http://www.mediafire.com/download/kdrvh4...uments.rar
Thanks!
thiennamlong > 12-05-15, 12:43 AM
(11-05-15, 11:32 PM)maidinhdan Đã viết:Bạn ơi nó không liên quan đến file có dấu đâu, bằng chứng là file tôi dang dùng vẫn chạy tốt mà. Cái file lỗi đó tôi muốn xoá các links tables đi tôi dùng code của bạn tạo nút ở mainform chạy nhưng không được.
Code chẳng lỗi gì cả. Bạn để file Data bạn không có dấu tiếng việt dùm.
file: số liệu cơ tính_2015: Viết không có đấu rồi hãy link table
Thân mến!
maidinhdan > 12-05-15, 10:32 AM
(12-05-15, 12:43 AM)thiennamlong Đã viết:(11-05-15, 11:32 PM)maidinhdan Đã viết:Bạn ơi nó không liên quan đến file có dấu đâu, bằng chứng là file tôi dang dùng vẫn chạy tốt mà. Cái file lỗi đó tôi muốn xoá các links tables đi tôi dùng code của bạn tạo nút ở mainform chạy nhưng không được.
Code chẳng lỗi gì cả. Bạn để file Data bạn không có dấu tiếng việt dùm.
file: số liệu cơ tính_2015: Viết không có đấu rồi hãy link table
Thân mến!
Tôi gửi bạn file login mà nó vẫn link tốt với file dữ liệu để bạn xem giúp nhé:
http://www.mediafire.com/download/xzduby.../LOGIN.rar
thiennamlong > 12-05-15, 02:27 PM
Nguycongtu > 16-06-15, 09:50 PM
maidinhdan > 16-06-15, 09:57 PM
(16-06-15, 09:50 PM)Nguycongtu Đã viết: Cám ơn anh chị đã chia sẻ code hay, nhưng em làm hoài mà không được.
em có down code hướng dẫn sau đó import form và modul vào access 2010 nhưng nó báo lỗi và không chạy được. mặc dù trên access 2003 thì chạy thấy bình thường.
Anh giúp em với nhé.
minhhoacatv > 21-01-16, 10:59 AM
mrtoanbin > 12-11-17, 08:53 AM
(11-09-10, 05:34 PM)Noname Đã viết:Cho xin lại link đi ad ơi, cảm ơn!
Tips này hướng dẫn chúng ta cập nhật lại link cho table khi chuyển file data có password sang một vị trí khác, hoặc chúng ta có nhiều file data giống nhau password và cấu trúc, chỉ khác nhau nội dung.
Chúng ta không cần phải khai báo lại password mà chỉ nhập password ở lần link lần đầu tiên (khi thiết kế)
(relink table from Database Access with password)
Writen by: Noname
Writen Site: http://thuthuataccess.com/forum
Please do not removed my info if using or share this code
Để sử dụng được code này, bạn vui lòng khai báo thư viện Office.
- Đầu tiên, bạn tạo 1 form mới, trên form,
+vẽ 1 textbox đặt tên là txtPath. dùng để nhập đường dẫn file data.
+ vẽ 1 nút nhấn, với caption là ... dùng để chọn file data, và ghi kết quả.
Vẽ 1 nút nhấn với caption là refresh link để thực thi hành động cập nhật lại đường dẫn table
Trong ví dụ đính kèm dưới đây, bạn có 2 file đính kèm là data3 và data4 với password đều là 123456.
Đầu tiên, bạn link table theo cách link thông thường, nó sẽ hỏi password của bạn, bạn nhập password bình thường, chọn các table để liên kết. Và kể từ đây bạn không cần phải nhập password thêm lần nào nữa.
Bạn tạo 1 module mới và copy các đoạn code sau vào:
Đoạn code này cho phép ta gọi hàm getfile để tìm tới file data
Mã:Function getFile(Tit As String, formatName As String, formatType As String)
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
With dlgOpen
.Title = Tit
.Filters.Clear
.Filters.Add formatName, formatType
.AllowMultiSelect = False
result = .Show
If (result <> 0) Then
getFile = Trim(dlgOpen.SelectedItems.Item(1))
End If
End With
End Function
Đoạn code này lấy về password lưu trong hệ thống:
Đoạn code này link table với đường dẫn và password có sẵnMã:' lâìy vêÌ password cuÒa lâÌn connect trýõìc
Function getconnect(T As String) As String
Dim con As String
con = DLookup("[Connect]", "MSysObjects", "[name]='" & T & "'")
getconnect = con
End Function
Mã:'Liên kêìt table
Sub LinkTable(T As String, path As String, connectString As String)
Dim tblLink As TableDef
Dim DBlink As Database
Set DBlink = OpenDatabase(path, False, False, connectString)
On Error GoTo Err
DoCmd.DeleteObject acTable, T
Err:
DoCmd.TransferDatabase acLink, "Microsoft Access", path, acTable, T, T
'DBlink.Close
Set DBlink = Nothing
End Sub
Đoạn code này kiểm tra các table nào là liên kết, nếu nó là liên kết thì sẽ tiến hành liên kết theo đường dẫn mới
Mã:Sub refreshLinkTable(path As String)
'Writen by:Noname
'Writen site: http://thuthuataccess.com/
'Please do not remove my info if using or share this modules
Dim r As Recordset
Dim s As String
s = "SELECT ForeignName FROM MSysObjects WHERE ForeignName Is Not Null"
Set r = CurrentDb().OpenRecordset(s)
If r.RecordCount > 0 Then
r.MoveLast
For i = 0 To r.RecordCount - 1
LinkTable r(0), path, getconnect(r(0))
r.MovePrevious
Next i
End If
r.Close
Set r = Nothing
End Sub
Giờ trong hành động nhấn chuột của nút Open, ta nhập code sau vào:
Mã:Private Sub cmdOpen_Click()
txtPath.Value = getFile("Select Data File", "data file", "*.mdb")
End Sub
Hành động nút refresh link ta nhập code sau vào:
Mã:Private Sub cmdreLink_Click()
refreshLinkTable Me.txtPath
MsgBox "link table thanh cong"
End Sub
Xong rồi đấy!
Chúc thành công.