Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Lỗi khi dùng CSDL qua Link Table
#1
Tôi có đoạn code sau:
Private Sub MaHS_AfterUpdate()
   Dim A01 As Recordset
    Set A01 = CurrentDb.OpenRecordset("T11HoSo", dbOpenTable)
    A01.Index = "PrimaryKey": A01.Seek "=", MaHS
    If A01.NoMatch Then
        MsgBox "MaHS này không tồn tại, xin kiểm tra lại !", vbInformation + vbDefaultButton1, "Chú ý"
        DoCmd.RunCommand acCmdUndo
    End If
    A01.Close
    If MaHS <> "" Then
        MaPAKD = "PAKD" & Right(MaHS, 4) & "." & Currec
    End If
End Sub
Khi chạy với CSDL trực tiếp thì ok, nhưng khi chạy với CSDL qua Link Table (dùng trong mạng lan) thì báo lỗi dòng này Set A01 = CurrentDb.OpenRecordset("T11HoSo", dbOpenTable), Gips tôi với!
Chữ ký của xndt xndt,gia nhập Thủ Thuật Access từ 06-05 -16.
Reply
Những người đã cảm ơn
#2
Bạn đổi dbOpenTable -> dbOpenDynaset
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn xndt
#3
(27-09-16, 04:48 PM)ongke0711 Đã viết: Bạn đổi dbOpenTable -> dbOpenDynaset
Đã được rồi nhưng nó tiếp tục báo lỗi dòng A01.Index = "PrimaryKey" bác ơi, giúp tôi với?
Chữ ký của xndt xndt,gia nhập Thủ Thuật Access từ 06-05 -16.
Reply
Những người đã cảm ơn
#4
Không bác nào giúp với, tôi cần quá!
Chữ ký của xndt xndt,gia nhập Thủ Thuật Access từ 06-05 -16.
Reply
Những người đã cảm ơn
#5
Khi bạn đổi qua dùng linked table thì một số phương thức dùng cho local table sẽ không còn chạy được.
Cách chuyển:
- Khai báo Dim db As DAO.Databse; rs As DAO.Recordset
- Phương thức SEEK cũng không xài được nên cái INDEX cũng báo lỗi luôn. Thay SEEK thành FINDFIRST.
 
----------------------
    Dim A01 As DAO.Recordset
    Set A01 = CurrentDb.OpenRecordset("T11HoSo", dbOpenDynaset)
    A01.FindFirst "MaHS = " & Me.cboMaHS
    If A01.NoMatch.....
-----------------------
MaHS là Primary key
cboMaHS là cái combobox (hay textbox) mà bạn nhập mã HS. Nếu MaHS kiểu TEXT thì phải bỏ nó vào giữa 2 dấu nháy đơn. 
VD: A01.FindFirst "MaHS = '" & Me.cboMaHS & "'"
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Che_Guevara , xndt , maidinhdan
#6
(27-09-16, 07:30 PM)ongke0711 Đã viết: Khi bạn đổi qua dùng linked table thì một số phương thức dùng cho local table sẽ không còn chạy được.
Cách chuyển:
- Khai báo Dim db As DAO.Databse; rs As DAO.Recordset
- Phương thức SEEK cũng không xài được nên cái INDEX cũng báo lỗi luôn. Thay SEEK thành FINDFIRST.
 
----------------------
    Dim A01 As DAO.Recordset
    Set A01 = CurrentDb.OpenRecordset("T11HoSo", dbOpenDynaset)
    A01.FindFirst "MaHS = " & Me.cboMaHS
    If A01.NoMatch.....
-----------------------
MaHS là Primary key
cboMaHS là cái combobox (hay textbox) mà bạn nhập mã HS. Nếu MaHS kiểu TEXT thì phải bỏ nó vào giữa 2 dấu nháy đơn. 
VD: A01.FindFirst "MaHS = '" & Me.cboMaHS & "'"
Cám ơn bạn ongke0711 rất nhiều, nhờ có bạn tôi đã giải quyết được vấn đề.
Chữ ký của xndt xndt,gia nhập Thủ Thuật Access từ 06-05 -16.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Tạo Menu dạng TreeView bằng Query (không dùng ActiveX) ongke0711 4 267 06-12-16, 09:16 PM
Bài mới nhất: toancvp
  [Hỏi] Làm sao để ấn định Null cho trường Date khi sử dụng Class Module Minh Tiên 8 614 18-11-16, 09:29 AM
Bài mới nhất: MinhnHang
  [Help] Giúp đỡ về cách xóa nội dung trong một field nam8384 2 118 17-10-16, 08:43 PM
Bài mới nhất: toancvp
  [Hỏi] Sử dụng chuột giữa trong subform là report. toancvp 10 360 12-10-16, 01:01 AM
Bài mới nhất: toancvp
  [Help] Áp dụng query lọc dữ liệu nhập vào form amazonvn82 8 1,352 05-10-16, 03:11 PM
Bài mới nhất: amazonvn82

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ