Đá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
  [Help] Nối các trường trong subfrm sang table có điều kiện tronghieu9792 4 57 Hôm qua, 05:51 PM
Bài mới nhất: tronghieu9792
  Thêm giá trị vào combobox tại vị trí nhập liệu tranthanhan1962 0 63 24-04-17, 06:37 PM
Bài mới nhất: tranthanhan1962
  Cập nhật người dùng lên form hiển thị kutieu2016 2 91 15-04-17, 09:13 PM
Bài mới nhất: kutieu2016
  [Help] Lấy dữ liệu từ bảng lên subfrom theo yêu câu.và ngược lại. HoangManh 14 406 14-04-17, 01:14 PM
Bài mới nhất: tranthanhan1962
  [Help] Import file .txt vào Table conmeo 13 1,060 13-04-17, 10:53 AM
Bài mới nhất: atula77

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ơ