Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Update nhiều record từ textbox vào table có điều kiện.
#1
Tôi có dữ liệu như sau: http://www.mediafire.com/?aznowbpedu5zw51
1 tblNhankhau trong đó có các trường: ID, Hoten, Thuongtru,..., Chon(yes/no)
2 textbox: Hotentxt, Thuongtrutxt
1 cmd: Command26
Tôi muốn update dữ liệu các record từ 2 textbox vào tblNhankhau (điều kiện khi trường Chon có giá trị True).
Đoạn code tôi viết tại Command26 như sau:
Mã PHP:
Private Sub Command26_Click()
Dim db As Database
Dim rs 
As Recordset
Dim stDocName 
As String
stDocName 
"qryXoachon"
Set db CurrentDb
Set rs 
db.OpenRecordset("tblNhankhau"dbOpenTable)
If 
Chon True Then
rs
.MoveFirst
Do Until rs.EOF
rs
.Edit
rs
!Hoten Me.Hotentxt.Value
rs
!Thuongtru Me.Thuongtrutxt.Value
rs
.Update
rs
.MoveNext
Loop
    rs
.Close
    MsgBox 
"So lieu da sua OK"
End If
DoCmd.OpenQuery stDocNameacNormalacEdit
tblNhankhau_subform
.Requery
End Sub 
Chạy thì không báo lỗi nhưng nó update tất cả luôn kể cả khi trường chọn có giá trị False. Mong các ae có thể hướng dẫn hoặc chỉnh sữa file dữ liệu mình kèm trên được không.
P/s: Nói chung là chỉ update khi ta chọn giá trị True vào trường Chon thoi. (Và các textbox nếu trống thì giữ nguyên giá trị trước được không nhỉ @@)
Cái qryXoachon là để cho trường Chon trở về giá trị False thôi
Thanks..
Chữ ký của hueqlhc Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
ღღღღღTài sản của hueqlhc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
Đã chọn rồi thì sao lại bỏ chọn?
Chữ ký của quan_pc Lắp đặt Internet VNPT tại Điện Bàn - Quảng Nam - Hotline: 0915.636.745
ღღღღღTài sản của quan_pc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
- Đồng chí ấy bỏ chọn để lần cập nhật sau sẽ cập nhật các record khác, không cập nhật lại các record này nữa (muốn cập nhật nữa lại chọn lại), ví dụ lần đầu cập nhật cho họ Nguyễn, lần sau cập nhật họ Lê chẳng hạn...
- Đồng chí hueqlhc sửa lại chút xíu như sau là OK:

Private Sub Command26_Click()
Dim db As Database
Dim rs As Recordset
Dim stDocName As String
DoCmd.SetWarnings False
stDocName = "qryXoachon"
Set db = CurrentDb
Set rs = db.OpenRecordset("tblNhankhau", dbOpenTable)
'If Chon = True Then (no khong hieu cho nay nen cap nhat het)
rs.MoveFirst
Do Until rs.EOF
If rs!Chon = True Then
rs.Edit
If Me.Hotentxt.Value <> "" Then rs!Hoten = Me.Hotentxt.Value
If Me.Thuongtrutxt.Value <> "" Then rs!Thuongtru = Me.Thuongtrutxt.Value
rs.Update
End If
rs.MoveNext
Loop
rs.Close
MsgBox "So lieu da sua OK"
'End If
DoCmd.OpenQuery stDocName, acNormal, acEdit
tblNhankhau_subform.Requery
DoCmd.SetWarnings True
End Sub
Chữ ký của TvAcc Xin chào, mình là TvAcc, Tham gia http://thuthuataccess.com/forum từ ngày 06-01 -13.
Reply
Những người đã cảm ơn ttm20062008 , hueqlhc
#4
Sao bạn lại thay luôn cả họ tên nhân khẩu thế? Bạn chỉ cần thay đổi nơi thường trú của nhân khẩu thôi chứ? Đúng không? Vì khi nhân khẩu thay đổi địa chỉ thương trú thì bạn phải cập nhật lại chứ không thể thay đổi họ tên của người ta được(bị kiện đấy). Trên form, bạn chỉ cần 1 textbox thuongtrutxt, chọn những ai cần thay đổi địa chỉ (tích vào nút Chon) rồi nhấn nút Cập nhật là nó sẽ tự động cập nhật cho bạn thôi. Câu lệnh của nút Cập nhật là :
Mã PHP:
Private Sub Command26_Click()
    
Dim rs As Recordset
    Dim CauSQL 
As String
    CauSQL 
"SELECT * FROM tblNhankhau WHERE Chon=True"
    
Set rs CurrentDb.OpenRecordset(CauSQL)
    If 
rs.RecordCount 0 Then
        rs
.MoveFirst
        
Do Until rs.EOF
            rs
.Edit
            rs
!Thuongtru Me.Thuongtrutxt
            rs
!Chon False
            rs
.Update
            rs
.MoveNext
        Loop
    End 
If
    
rs.Close
End Sub 

Bạn test lại thử xem
Thân mến
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 hueqlhc
#5
- Tôi cũng đã thắc mắc như Xuân Thanh nhưng theo câu hỏi và file kèm thì Đồng chí ấy muốn thay cả họ tên và thường trú.

- Có thể ý Đồng chí ấy thế này:

1. Khi thay họ tên: gõ textbox họ tên, bỏ trống textbox thường trú.
2. Khi thay thường trú: gõ textbox thường trú, bỏ trống textbox họ tên.
3. Khi thay cả họ tên và thường trú (thay anh A bằng chị B: chỉ khác họ tên và thường trú còn các trường khác vẫn đúng): gõ cả 2 texbox

=> Nếu vậy thì Đồng chí ấy làm đúng rồi đấy, file chạy đúng như 1, 2, 3
Chữ ký của TvAcc Xin chào, mình là TvAcc, Tham gia http://thuthuataccess.com/forum từ ngày 06-01 -13.
Reply
Những người đã cảm ơn ttm20062008
#6
Trong hồ sơ hộ khẩu thì có nhiều trường hợp họ muốn điều chỉnh nhiều cái lắm như: Họ và tên, năm sinh, nguyên quán, số CMND. Nói chung là điều chỉnh được hết nhưng phải đúng thủ tục thì cơ quan Công an họ sẽ điều chỉnh hết.
Thanks các bạn nhiều.
Chữ ký của hueqlhc Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
ღღღღღTài sản của hueqlhc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#7
Nếu muốn làm như bạn cũng OK thôi vì như trên là chỉ thay đổi 1 trường, muốn làm nhiều trường thì thêm vào thôi
Mã PHP:
Private Sub Command26_Click()
    
Dim rs As Recordset
    Dim CauSQL 
As String
    CauSQL 
"SELECT * FROM tblNhankhau WHERE Chon=True"
    
Set rs CurrentDb.OpenRecordset(CauSQL)
    If 
rs.RecordCount 0 Then
        rs
.MoveFirst
        
Do Until rs.EOF
            rs
.Edit
            
If Not IsNull(Me.ThuongtrutxtThen rs!Thuongtru Me.Thuongtrutxt
            
If Not IsNull(Me.HoTentxtThen rs!HoTen Me.HoTentxt
            
If Not IsNull......'Thêm tiếp vào đây
            rs!Chon = False
            rs.Update
            rs.MoveNext
        Loop
    End If
    rs.Close
    Msgbox "Da Update OK"
End Sub 

Với câu lệnh như trên, sau khi Update xong, nó sẽ trả trường Chon về giá trị False mà không cần phải thêm lệnh hay query gì nữa, một công hai ba việc

Lưu ý : Câu lệnh của các bạn sẽ duyệt hết table tblNhanKhau, khi gặp trường nào có giá trị Chon = True thì thực hiện câu lệnh Edit. Như vậy sẽ rất lâu nếu có vài ngàn record. Dùng câu SQL sẽ giảm thiểu tối đa các recordset được duyệt, chỉ xét những recordset có Chon = True mà thôi nên sẽ rất nhanh
Thân mến
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 hueqlhc
#8
mình có 1 from dùng để nhập dữ liệu từ textbox vào table sau đó in ra dữ liệu theo mẫu báo cáo,những mình vẫn chưa nghĩ được cách viết code xin mọi người xem form(link) và giúp đỡ,mình mới học VBA nên còn gà làm.Link from của mình http://www.mediafire.com/?bbhbf1n6zlfkn8o.Quầy trên form của mình là Trẻ em(TE),Nữ(NU),Nam(NA)
Chữ ký của bignosevinatex Xin chào, mình là bignosevinatex, Tham gia http://thuthuataccess.com/forum từ ngày 18-03 -13.
Reply
Những người đã cảm ơn
#9
1/ Dường link không đúng
2/ Nhấn phải chuột vào file cần lấy link, chọn Copy Link rồi paste vào diễn đàn
Thân mến
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
#10
Em gui lai LINK mong moi nguoi giup do.Thanks All
http://www.mediafire.com/?bbhbf1n6zlfkn8o
Chữ ký của bignosevinatex Xin chào, mình là bignosevinatex, Tham gia http://thuthuataccess.com/forum từ ngày 18-03 -13.
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
Question [Help] Link tất các table trong một file.mdb bằng VBA MinhnHang 6 141 29-11-16, 05:18 PM
Bài mới nhất: MinhnHang
  [Hỏi] Viết code có điều kiện " lệnh Chạy tiếp khi đóng tbl cho sẵn" Trần Linh 3 134 21-10-16, 11:11 AM
Bài mới nhất: Minh Tiên
  [Thủ Thuật] Tạo Form đánh giá 1 - 5 sao cho từng Record ongke0711 0 117 03-05-16, 06:51 PM
Bài mới nhất: ongke0711
  [Thủ Thuật] [Share Code] Demo Quay số trúng thưởng theo danh sách trong table maidinhdan 9 1,495 10-03-16, 11:43 AM
Bài mới nhất: phamlong24
  [Hỏi] Edit, Delete Record đang chọn iatod 0 184 20-02-16, 03:38 PM
Bài mới nhất: iatod

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ơ