Sửa đổi thông tin cũ trong form nhập liệu (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ntt5202

Thành viên mới
Tham gia
22/1/10
Bài viết
1
Được thích
0
Nghề nghiệp
ngan hang
Em có file gửi kèm, các bác xem và giúp em với: Table T00_Hoso (CMND, Hovaten, Diachi, SoluongTS, Bia1, Bia2, Bia3) trong đó khóa chính CMND. Form nhập liệu: khi em nhập và số CMND nếu không có là bình thường, nếu đã có rồi thì load thông tin của CMND đó ra form sau đó sửa đổi và update lại. Em đang bí chỗ này đây. Mong các bác giúp em với! Cảm ơn.
 

File đính kèm

Bạn sơ bộ sửa code 1 chút là load dữ liệu lên được, bạn tham khảo phần thụt vào nha:
Mã:
Private Sub txtCMND_LostFocus()
Dim db As Database
Dim rs As Recordset
Dim traloi As Boolean
Dim str
traloi = False
Set db = CurrentDb()
Set rs = db.OpenRecordset("T00_Hoso")
ktra = Me.txtCMND.Value
Do Until rs.EOF
If rs![CMND] = ktra Then
[INDENT] Me.txtHovaten = rs.Fields(1)
Me.txtDiachi = rs.Fields(2)
Me.txtSoluongTS = rs.Fields(3)
Me.txtBia1 = rs.Fields(4)
Me.txtBia2 = rs.Fields(5)
Me.txtBia3 = rs.Fields(6)
[/INDENT] traloi = True
End If
rs.MoveNext
Loop
rs.Close
If traloi = True Then
str = MsgBox("So CMND/Khach hang nay da nhap roi. Hay xem lai" + Chr(13) + "Neu ban muon sua thong tin da nhap chon Yes" + Chr(13) + "Neu chon No thi bo qua", vbExclamation + vbYesNo, "Xac nhan")
If str = vbYes Then
MsgBox "Neu chon Yes lay thong tin cu ra sau do sua va Update vao. Em dang bi cho nay! Cac bac giup em voi!", , "SOS: GIUP EM VOI"
Exit Sub
End If
End If
End Sub
Bạn đặt 1 biến Public dang Boolean là Moi để kiểm tra việc nhập mới hay sửa cũ. Khi nhấn nút Add thì Moi=True, nếu tìm thấy trùng thì chuyển Moi=False. Khi Save ta kiểm tra biến mới này. Nếu nó bằng True thì ta cứ việc save là xong. Nhưng nó là False thì bạn lại phải tìm Record có số đó xoá nó đi và lưu lại Record mới Add
 
Em có file gửi kèm, các bác xem và giúp em với: Table T00_Hoso (CMND, Hovaten, Diachi, SoluongTS, Bia1, Bia2, Bia3) trong đó khóa chính CMND. Form nhập liệu: khi em nhập và số CMND nếu không có là bình thường, nếu đã có rồi thì load thông tin của CMND đó ra form sau đó sửa đổi và update lại. Em đang bí chỗ này đây. Mong các bác giúp em với! Cảm ơn.
Bạn nên dùng 1 update query cho trường hợp này.
Ví dụ như sau:

Mã:
mySQL = "update T00_hoso set CMND='" & txtCMND & "', Hovaten='" & txtHovaten & "',Diachi='" & _
         txtDiachi & "',SoluongTS='" & txtSoluongTS & "',Bia1='" & txtBia1 & "',Bia2='" & _
         txtBia2 & "',Bia3='" & txtBia3 & "' where CMND='" & txtCMND & "'"
  DoCmd.RunSQL mySQL
 
Bạn nên dùng 1 update query cho trường hợp này.
Ví dụ như sau:

Mã:
mySQL = "update T00_hoso set CMND='" & txtCMND & "', Hovaten='" & txtHovaten & "',Diachi='" & _
         txtDiachi & "',SoluongTS='" & txtSoluongTS & "',Bia1='" & txtBia1 & "',Bia2='" & _
         txtBia2 & "',Bia3='" & txtBia3 & "' where CMND='" & txtCMND & "'"
  DoCmd.RunSQL mySQL

Bạn lại không xem hết cơ chế hoạt động của Form rồi. Khi nhấn Add là thêm mới 1 Rec. rồi. Load dữ liệu cũ lên là trong Table có 2 Rec cùng mã CMND. Trong khi cái mới có cả thông tin thay đổi ta nên giữ và chỉ cần xoá thằng cũ chưa update là xong. (Mình lưu ý đây là dạng Form Underflying Table, các đối tượng gắn liền với Tabbe mọi thay đổi của đói tượng đều thay đổi Table)
 
Lần chỉnh sửa cuối:
Bạn lại không xem hết cơ chế hoạt động của Form rồi. Khi nhấn Add là thêm mới 1 Rec. rồi. Load dữ liệu cũ lên là trong Table có 2 Rec cùng mã CMND. Trong khi cái mới có cả thông tin thay đổi ta nên giữ và chỉ cần xoá thằng cũ chưa update là xong. (Mình lưu ý đây là dạng Form Underflying Table, các đối tượng gắn liền với Tabbe mọi thay đổi của đói tượng đều thay đổi Table)
Cách này vẫn được, nó tìm cái cũ và thay thế cái cũ. Dĩ nhiên là nó thêm 1 cái giống, nhưng khi thoát form nó sẽ tự xóa đi cái trùng.
 
Web KT

Bài viết mới nhất

Back
Top Bottom