Không viết được code cho textbox Cập nhật dữ liệu trong VBA

Liên hệ QC

Mr.Kind

Thành viên mới
Tham gia
17/3/22
Bài viết
3
Được thích
0
Xin được giúp đỡ! Mình đang tạo form Thêm, Sửa, Cập Nhật dữ liệu. Và đang bị vướng mắc phần Cập nhật dữ liệu sau khi sửa. Kính nhờ các pro code thêm giúp mình phần này ạ. Xin cảm ơn.

(Vui lòng xem file đính kèm)
 

File đính kèm

  • Nháp VBA.xlsm
    81.4 KB · Đọc: 15
. . . . Mình đang (1) tạo form Thêm, Sửa, Cập Nhật dữ liệu. Và đang bị vướng mắc phần Cập nhật dữ liệu sau khi sửa. Kính nhờ các pro code thêm giúp mình phần này ạ. Xin cảm ơn.

(Vui lòng xem file đính kèm)
(1) Bạn đang có tới 7 cái Form; mà trong đó chí ít 3 Form có liên quan đến cập nhật
Vậy bạn cho biết đang cần giúp phần cập nhật dữ liệu (DL) sau khi sửa ở form cụ thể nào?
Thêm nữa, việc cập nhật này liên quan đến (những) trang tính nào vậy?
(2) E rằng các trang tính bạn chưa nhập nhiều dòng DL nên càng làm người có nhã ý giúp bạn sẽ khó hơn.
(2.1) Trước khi muốn 'sửa' thì phải tìm ra dòng DL cần sửa cái đã
Cũng sẽ vậy, cho chu trình câp nhật DL sau khi sửa đó bạn.
Chờ tin từ bạn
 
Upvote 0
Xin được giúp đỡ! Mình đang tạo form Thêm, Sửa, Cập Nhật dữ liệu. Và đang bị vướng mắc phần Cập nhật dữ liệu sau khi sửa. Kính nhờ các pro code thêm giúp mình phần này ạ. Xin cảm ơn.

(Vui lòng xem file đính kèm)
Thường thì muốn cập nhật phải biết đang sửa dòng nào. Biết được dòng đang sửa là số mấy thì cập nhật giống như ghi dữ liệu mới thôi.
Chưa xem file nên không biết thớt thực sự muốn hỏi gì, cứ trả lời mù vậy thôi.
 
Upvote 0
Mấy ngwoif này trả lời hổng pơ-rô gì hết.
Pơ-rô cứ cắm cổ mà làm. Không đúng ý người hỏi thì sửa. Công chùa mờ.
 
Upvote 0
(1) Bạn đang có tới 7 cái Form; mà trong đó chí ít 3 Form có liên quan đến cập nhật
Vậy bạn cho biết đang cần giúp phần cập nhật dữ liệu (DL) sau khi sửa ở form cụ thể nào?
Thêm nữa, việc cập nhật này liên quan đến (những) trang tính nào vậy?
(2) E rằng các trang tính bạn chưa nhập nhiều dòng DL nên càng làm người có nhã ý giúp bạn sẽ khó hơn.
(2.1) Trước khi muốn 'sửa' thì phải tìm ra dòng DL cần sửa cái đã
Cũng sẽ vậy, cho chu trình câp nhật DL sau khi sửa đó bạn.
Chờ tin từ bạn

Xin lỗi vì ko đưa thông tin rõ ràng để mọi người xem giúp ạ! Mình xin bổ sung thông tin như sau:
1. Form mình cần sửa là "baocao_slht". Và cần viết lệnh cho button "cập nhật". Và việc cập nhật này sẽ cập nhật cho Sheet3(SLHT)
1647825542481.png
2. Ý tưởng trong form này của mình đang thực hiện như sau:
- B1: Click Chọn 1 hàng DL bất kỳ trong Listbox (DL trong listbox được lấy từ sheet3(SLHT) )
- B2: Click vào button "Sửa", thì nội dung cần sửa sẽ hiện lên trong các ô textbox có sẵn.
- B3: Sửa nội dung tại các ô textbox.
- B4: Click vào button "Cập nhật", nội dung đã sửa sẽ lưu đè lên hàng lúc đầu chọn trong list box và làm trống các DL trong textbox sau khi cập nhật.
Mình đã làm được tới bước 3. Riêng tới Bước 4 thì chịu thua ạ.
Tại mình thấy VBA rất hay và đang tập viết thôi ạ, nên logic chưa tốt + chưa học được nhiều nên rất mong được chỉ giáo thêm ạ.
Xin cảm ơn!

1647826094075.png
Bài đã được tự động gộp:

Mấy ngwoif này trả lời hổng pơ-rô gì hết.
Pơ-rô cứ cắm cổ mà làm. Không đúng ý người hỏi thì sửa. Công chùa mờ.
Lời của bác làm con tim em đau quá. :eek::eek:
Xin lỗi vì không nêu rõ ý trong khi cần sự giúp đỡ ạ!
 
Upvote 0
...
Lời của bác làm con tim em đau quá. :eek::eek:
...
Tôi thấy tuổi trẻ bây giờ không biết trọng tiếng mẹ đẻ, đi dùng tiếng Tây bồi, con tim tôi cũng "đau" không kém.
Con người trâng quý tình cảm như thế mà sao không biết trâng quý văn hoá dân tộc nhỉ?
 
Upvote 0
Xin lỗi vì ko đưa thông tin rõ ràng để mọi người xem giúp ạ! Mình xin bổ sung thông tin như sau:
1. Form mình cần sửa là "baocao_slht". Và cần viết lệnh cho button "cập nhật". Và việc cập nhật này sẽ cập nhật cho Sheet3(SLHT)

2. Ý tưởng trong form này của mình đang thực hiện như sau:
- B1: Click Chọn 1 hàng DL bất kỳ trong Listbox (DL trong listbox được lấy từ sheet3(SLHT) )
- B2: Click vào button "Sửa", thì nội dung cần sửa sẽ hiện lên trong các ô textbox có sẵn.
- B3: Sửa nội dung tại các ô textbox.
- B4: Click vào button "Cập nhật", nội dung đã sửa sẽ lưu đè lên hàng lúc đầu chọn trong list box và làm trống các DL trong textbox sau khi cập nhật.
Mình đã làm được tới bước 3. Riêng tới Bước 4 thì chịu thua ạ.
Tại mình thấy VBA rất hay và đang tập viết thôi ạ, nên logic chưa tốt + chưa học được nhiều nên rất mong được chỉ giáo thêm ạ.
Xin cảm ơn!
Tôi không phải là pro gì cả, tôi chỉ là 1 f0, khuyên bạn nên bỏ tật viết tắt và dùng tiếng Tây ta lẵn lộn.
Còn về code thì theo gợi ý của Anh @Maika8008 tôi đề nghị sửa thành thế này:
Mã:
Public dong As Long
Private Sub CommandButton3_Click()
    With Me
    dong = .lb_slht.ListIndex + 2
        .cbx_hm_baocao.Text = .lb_slht.List(.lb_slht.ListIndex, 3)
        .cbx_tuan_baocao.Text = .lb_slht.List(.lb_slht.ListIndex, 9)
        .txt_ngaybaocao.Text = .lb_slht.List(.lb_slht.ListIndex, 8)
        .txt_KLbaocao.Text = .lb_slht.List(.lb_slht.ListIndex, 6)
        .txt_DVbaocao = .lb_slht.List(.lb_slht.ListIndex, 4)
    End With   
End Sub
........
........

Private Sub CommandButton4_Click()
With Sheets("SLHT")
            .Range("D" & dong) = cbx_hm_baocao
            .Range("E" & dong) = txt_DVbaocao
            .Range("G" & dong) = txt_KLbaocao
            .Range("I" & dong) = txt_ngaybaocao
            .Range("J" & dong) = cbx_tuan_baocao
         End With
End Sub
Chạy thử
 
Upvote 0
. . . . . . Mình xin bổ sung thông tin như sau:
1. Form mình cần sửa là "baocao_slht". Và cần viết lệnh cho button "cập nhật". Và việc cập nhật này sẽ cập nhật cho Sheet3(SLHT)
2. Ý tưởng trong form này của mình đang thực hiện như sau:
- B1: Click Chọn 1 hàng DL bất kỳ trong Listbox (DL trong listbox được lấy từ sheet3(SLHT) )
- B2: Click vào button "Sửa", thì nội dung cần sửa sẽ hiện lên trong các ô textbox có sẵn.
- B3: Sửa nội dung tại các ô textbox.
- B4: Click vào button "Cập nhật", nội dung đã sửa sẽ lưu đè lên hàng lúc đầu chọn trong list box và làm trống các DL trong textbox sau khi cập nhật.
Mình đã làm được tới bước 3. Riêng tới Bước 4 thì chịu thua ạ. . . . . .
Hiện tại trang 'SLHT' của bạn mới chỉ hơn chục mống dòng dữ liệu
Bạn sẽ phải tưởng tượng khi số dòng tăng lên đến 5 - 6 trăm thì lăn chuột mệt nghỉ đó nhỉ(!), trên cái ListBox thân thương của bạn;
& bạn cần thiết dự trữ thêm con chuột để có cái thay ngay lúc con chuột đang vận hành phản đối hành vi của bạn & đình công.

Bài trên của mình đã nêu vấn đề đó: Là làm sao tìm cho ra dòng cần thiết để sửa chữa đây, bạn?
Thường thì 1 danh sách nhân sự hay vật tư hàng hóa đều có cột [Mã], điều này bạn chưa có thì phải
(Khi đã có mã hiệu cho từng dòng dữ liệu thì trước khi muốn sửa dòng dữ liệu nào cần réo nó bằng VBA, chứ không phải bằng cách lăn chuột)
. . . . . Có nghĩa là vấn đề của bạn theo mình là lập 1 CSDL chuẩn cho trang tính 'SLHT' này trước đã!
Chứ như bây chừ viết bước 4 cho bạn là hại bạn thêm đó; Ai làm điều bạn iêu cầu là cố tình hại bạn đó, về lâu về dài, chả tốt lành gì đâu!
 
Lần chỉnh sửa cuối:
Upvote 0
Hiện tại trang 'SLHT' của bạn mới chỉ hơn chục mống dòng dữ liệu
Bạn sẽ phải tưởng tượng khi số dòng tăng lên đến 5 - 6 trăm thì lăn chuột mệt nghỉ đó nhỉ(!), trên cái ListBox thân thương của bạn;
& bạn cần thiết dự trữ thêm con chuột để có cái thay ngay lúc con chuột đang vận hành phản đối hành vi của bạn & đình công.

Bài trên của mình đã nêu vấn đề đó: Là làm sao tìm cho ra dòng cần thiết để sửa chữa đây, bạn?
Thường thì 1 danh sách nhân sự hay vật tư hàng hóa đều có cột [Mã], điều này bạn chưa có thì phải
(Khi đã có mã hiệu cho từng dòng dữ liệu thì trước khi muốn sửa dòng dữ liệu nào cần réo nó bằng VBA, chứ không phải bằng cách lăn chuột)
. . . . . Có nghĩa là vấn đề của bạn theo mình là lập 1 CSDL chuẩn cho trang tính 'SLHT' này trước đã!
Chứ như bây chừ viết bước 4 cho bạn là hại bạn thêm đó; Ai làm điều bạn iêu cầu là cố tình hại bạn đó, về lâu về dài, chả tốt lành gì đâu!
Cảm ơn lời góp ý của bạn! Nó giúp mình nhìn được chiều sâu của vấn đề và các tồn đọng cần phải hoàn thiện. Trân trọng!!!
Bài đã được tự động gộp:

Tôi không phải là pro gì cả, tôi chỉ là 1 f0, khuyên bạn nên bỏ tật viết tắt và dùng tiếng Tây ta lẵn lộn.
Còn về code thì theo gợi ý của Anh @Maika8008 tôi đề nghị sửa thành thế này:
Mã:
Public dong As Long
Private Sub CommandButton3_Click()
    With Me
    dong = .lb_slht.ListIndex + 2
        .cbx_hm_baocao.Text = .lb_slht.List(.lb_slht.ListIndex, 3)
        .cbx_tuan_baocao.Text = .lb_slht.List(.lb_slht.ListIndex, 9)
        .txt_ngaybaocao.Text = .lb_slht.List(.lb_slht.ListIndex, 8)
        .txt_KLbaocao.Text = .lb_slht.List(.lb_slht.ListIndex, 6)
        .txt_DVbaocao = .lb_slht.List(.lb_slht.ListIndex, 4)
    End With  
End Sub
........
........

Private Sub CommandButton4_Click()
With Sheets("SLHT")
            .Range("D" & dong) = cbx_hm_baocao
            .Range("E" & dong) = txt_DVbaocao
            .Range("G" & dong) = txt_KLbaocao
            .Range("I" & dong) = txt_ngaybaocao
            .Range("J" & dong) = cbx_tuan_baocao
         End With
End Sub
Chạy thử
Mình chạy được rồi ạ! Cảm ơn đã hỗ trợ. Trân trọng!
 
Lần chỉnh sửa cuối:
Upvote 0
2. Ý tưởng trong form này của mình đang thực hiện như sau:
- B1: Click Chọn 1 hàng DL bất kỳ trong Listbox (DL trong listbox được lấy từ sheet3(SLHT) )
- B2: Click vào button "Sửa", thì nội dung cần sửa sẽ hiện lên trong các ô textbox có sẵn.
- B3: Sửa nội dung tại các ô textbox.
- B4: Click vào button "Cập nhật", nội dung đã sửa sẽ lưu đè lên hàng lúc đầu chọn trong list box và làm trống các DL trong textbox sau khi cập nhật.
Mình đã làm được tới bước 3. Riêng tới Bước 4 thì chịu thua ạ.

Nếu là tôi thì tôi bỏ nút Cập nhật:
- B1: Click Chọn 1 hàng DL bất kỳ trong Listbox (DL trong listbox được lấy từ sheet3(SLHT) ) thì dòng được chọn sẽ nhẩy vào các TextBox và ComboBox.
- B2: Sửa nội dung tại các ô textbox.
- B3: Click vào button "Sửa", nội dung từ các TextBox và ComboBox sẽ làm mới dòng trên sheet tương ứng với nó, và đồng thời dòng được chọn trong ListBox cũng được làm mới. Tức ở mọi thời điểm thì nội dung trên sheet và trong ListBox là y như nhau.
 
Upvote 0
Web KT

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

Back
Top Bottom