Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Code cập nhật số liệu chỉnh sửa từ form vào table
#1
Nhờ Noname cùng các Pro chỉ giáo:
Tôi có 1 table(stt=Number;ten=text);
1 form gồm: 2 unbound textbox là: Luustt và Luuten;
3 command button là: Them, Sua và Luu.

Tôi đã viết thủ tục cho nút Lưu như sau (Access 2007):
Private Sub Luu_Click()
Dim DB As Database
Dim RS As Recordset
Set DB = CurrentDb
Set RS = DB.OpenRecordset("Table1", dbOpenTable)
If flag = 1 Then 'Trường hợp thêm mới
RS.AddNew
RS.Fields(0) = Me.Luustt
RS.Fields(1) = Me.Luuten
RS.Update
MsgBox "Đã lưu thêm OK !"
RS.Close
Set DB = Nothing
DoCmd.Requery
Else 'Khi sửa
RS.FindFirst "[Stt] ='" & Me.Luustt.Value & "'" 'Tôi học trên diễn đàn này
RS.Edit
RS.Fields(0) = Me.Luustt
RS.Fields(1) = Me.Luuten
RS.Update
MsgBox "Đã lưu số liệu sửa OK !"
RS.Close
Set DB = Nothing
DoCmd.Requery
end if
end sub

Khi thêm mới và lưu thì OK nhưng khi sửa ở một dòng nào đó thì không được. Thủ tục báo lỗi:
"Run-time error "3251"
Operation is not supported for this type of object.
Không biết tôi sai chỗ nào. Nhờ Noname cùng các Pro chỉnh sửa giúp đoạn code trên.
Cảm ơn nhiều !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#2
Xin nói rõ thêm:
1. Nếu dùng Update Query thì OK:
Tạo Update Query và thay đoạn code lưu sửa chữa thành thủ tục gọi: Docmd.Ppen "Query1" là OK.

2. Dùng đoạn lệnh sau thay cho thủ tục lưu khi sửa thì cũng OK:
.....
Me.Stt.value= me.Luustt.value
Me.Ten.value= me.Luuten.value
docmd.save

Nhưng phải đưa các text box Stt và Ten lên form mới được.

Ở đây tôi muốn nhờ các Pro đoạn code sẽ lưu khi chỉnh sửa dữ liệu trên unbound Ok mà không cần đưa các text box lên form và không dùng Update Query.

File của tmtien261 gồm: Tạo số tt tự động, chặn nhập trùng số liệu, thêm, sửa, lưu, hủy, thoát dùng unbound, phần sửa dùng Update Query : DOWNLOAD

Cảm ơn nhiều !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#3
1/ Trong Table1, bạn đặt Index cho Field(0)
2/ Dùng Seek mà tìm kiếm sau đó hãy Edit
Thử theo hướng này xem nhé
Thân

Tham khảo thêm ở đây : http://thuthuataccess.com/forum/thread-5296.html
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname , Minh Tiên
#4
(04-12-12, 09:51 AM)Xuân Thanh Đã viết: 1/ Trong Table1, bạn đặt Index cho Field(0)
2/ Dùng Seek mà tìm kiếm sau đó hãy Edit
Thử theo hướng này xem nhé
Thân

Tham khảo thêm ở đây : http://thuthuataccess.com/forum/thread-5296.html

Cảm ơn bạn đã gợi ý. Mình đã viết chạy được rồi ! Đoạn code hoàn chỉnh như sau:
Private Sub Luu_Click()
Dim DB As Database
Dim RS As Recordset
Set DB = CurrentDb
Set RS = DB.OpenRecordset("Table1", dbOpenTable)
If IsNull(Me.lid) Or Me.lid.Value = "" Or IsNull(Me.lhoten) Or Me.lhoten.Value = "" Or IsNull(Me.lfone) Or Me.lfone.Value = "" Then
MsgBox "Chua so so lieu de luu !"
Me.lhoten.SetFocus
Exit Sub
Else
RS.Index = "Primarykey"
RS.Seek "=", Me.lid
If RS.NoMatch Then
RS.AddNew
RS.Fields(0) = Me.lid
RS.Fields(1) = Me.lhoten
RS.Fields(2) = Me.lfone
RS.Update
MsgBox "So lieu da them OK"
Else
RS.Edit
RS!ID = Me.lid.Value
RS!hoten = Me.lhoten.Value
RS!fone = Me.lfone.Value
RS.Update
MsgBox "So lieu da sua OK"
End If
RS.Close
End If
Call Cleartextbox
Call Locktextbox
DoCmd.Requery
Them.Enabled = True
Them.SetFocus
Sua.Enabled = True
Luu.Enabled = False
Huy.Enabled = False
DoCmd.GoToRecord , , acLast
End Sub
File đính kèm: [attachment=526]
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
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
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 36 Hôm qua, 02:23 AM
Bài mới nhất: maidinhdan
  Tự động hiện Form khi loading hết thời gian ChiMai 1 49 02-12-16, 08:59 PM
Bài mới nhất: ongke0711
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 208 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq
Photo [Hỏi] Mở Form trên access 2007 báo lỗi jason 5 194 22-11-16, 09:23 AM
Bài mới nhất: jason
  Query hiện lên trên form? feeling 4 164 09-11-16, 09:49 PM
Bài mới nhất: toancvp

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ơ