Trang chủ | Giới thiệu | Sơ đồ trang

VBA Excel thực hành Bài 6 - Sửa, xóa dữ liệu trong VBA

16 nhận xét
VBA excel
Nối tiếp loạt video hướng dẫn tự học VBA của các bài trước, hôm nay chúng ta tìm hiểu cách lập trình nút Sửa, Xóa, Cập nhật trên VBA Excel. Cơ sở dữ liệu có bao gồm nhiều trường dữ liệu và nhiều bản ghi, đôi khi ta nhập dữ liệu có chỗ sai sót cần phải sửa chữa hoặc xóa bỏ nếu không cần thiết, vậy đối với VBA ta làm thế nào mời bạn đọc cùng theo dõi video dưới đây:








Code cho nút Sửa:

Private Sub btnEdit_Click()
On Error Resume Next
g = 0
Do
DoEvents
g = g + 1
p = Sheet1.Range("a" & g)
If p = txtMa.Text Then
txtDate.Text = Sheet1.Range("b" & g)
txtTen.Text = Sheet1.Range("c" & g)
txtNgaysinh.Text = Sheet1.Range("d" & g)
txtNghenghiep.Text = Sheet1.Range("e" & g)
txtDiachi.Text = Sheet1.Range("f" & g)
End If
Loop Until p = ""
End Sub


Code cho nút Xóa:
Private Sub btnDelete_Click()
On Error Resume Next
    g = 0
    Do
    DoEvents
    g = g + 1
    p = Sheet1.Range("a" & g)
    If p = txtMa.Text Then
        Sheet1.Range("a" & g).Select
        Selection.Delete
        Sheet1.Range("b" & g).Select
        Selection.Delete
        Sheet1.Range("c" & g).Select
        Selection.Delete
        Sheet1.Range("d" & g).Select
        Selection.Delete
        Sheet1.Range("e" & g).Select
        Selection.Delete
        Sheet1.Range("f" & g).Select
        Selection.Delete
    End If
    Loop Until p = ""
    Form1.txtMa.SetFocus
End Sub

Code cho nút Cập nhật:
Private Sub CommandButton1_Click()
On Error Resume Next
    g = 0
    Do
    DoEvents
    g = g + 1
    p = Sheet1.Range("a" & g)
    If p = txtMa.Text Then
        Sheet1.Range("b" & g) = txtDate.Text
        Sheet1.Range("c" & g) = txtTen.Text
        Sheet1.Range("d" & g) = txtNgaysinh.Text
        Sheet1.Range("e" & g) = txtNghenghiep.Text
        Sheet1.Range("f" & g) = txtDiachi.Text
    End If
    Loop Until p = ""
    Form1.txtMa.SetFocus
 
End Sub

16 Nhận xét

Chào bạn, cảm ơn bạn về các bài hướng dẫn này. Tuy nhiên mình làm theo chưa được, theo mình thấy đang có vấn đề ở chỗ txtma ấy, sang bài này mình thấy bạn đã edit txtma được đánh số tự động. Bạn có thể chỉ giúp mình cách đánh số tự động và xem lại giúp mình bài này dc ko, thanks bạn

Reply

Chào bạn, thực ra mình đã thử chuyển cột STT nhập tự động nhưng lại gây ra một lỗi khác đó là không thể tìm và sửa các cột còn lại nếu số tt được nhập tự động, thứ hai là nếu để số tt tự động thì khi ta xóa dữ liệu sẽ gây ra lỗi dữ liệu. Nên mình cũng chỉ nhập thủ công thôi cho lành, mình để trên form vậy thôi chứ vẫn nhập stt thủ công thôi bạn ạ

Reply

CHO MINH XIN CODE THOAT

Reply

Chào bạn.... mình làm theo bài bạn hướng dẫn nhưng khi nhấn Cập Nhật thì nó chỉ thay đổi ở cột B thôi, còn cột C,D,E,F không thay đổi

Reply

Thầy ơi cho em xin code đóng file cảm ơn thầy nhiều

Reply

hi AD, đã làm theo như AD làm và copy đoạn code luôn nhưng vẫn không hoạt động được nút sửa và cập nhật. mong AD chỉ giúp

Reply

mforrm1.Hide code đóng nhé

Reply

bạn cho mình xin file về tham khảo với. Email: quocbinh.ga@gmail.com

Reply

Xin chào AD. Bạn có thể cho mình xin file về tham khảo được không ? Xin cảm ơn bạn Trước.| Email: giusehoangtan@gmail.com

Reply
Nhận xét này đã bị tác giả xóa.

Xin chào tác giả, mình làm theo video VBA Excel thực hành Bài 6 - Sửa, xóa dữ liệu trong VBA, nhưng chưa được, nó báo lỗi, mình chưa hiểu g và p là gì, lấy ở đâu, khai báo như thế nào? Rất mong tác giả giúp đỡ.

Reply
Nhận xét này đã bị tác giả xóa.

Chào bạn PHAMNHA, bạn cần kiểm tra kỹ các tên thuộc tính của các điều khiển trên form với định danh tên các điều khiển trên Code. Còn g và p là hai biến trong đó g là chỉ số hàng trên excel, p nhận giá trị của một ô tại Cột A hàng g (p=sheet1.range("a"&g)). Tại sự kiện Sửa nội dung Code được hiểu như sau: cho biến g gán giá trị đầu bằng 0, biến p nhận một giá trị tại Cột A hàng g, thực hiện vòng lặp Do với mỗi vòng lặp tăng giá trị g lên 1 đơn vị (g=g+1) tới khi đáp ứng điều kiện thì vòng lặp kết thúc, mà điều kiện ở đây là khi giá trị tại ô nhập txtMa trùng với một ô tại Cột A hàng g tức là khi đó điều kiện p=txtMa.TEXT đã xẩy ra thì vòng lặp dừng đồng thời truy xuất các dữ liệu tại các cột B, C, D, E, F hàng g lên form với các trường tương ứng. Ta thấy trường thông tin tại Cột A là mã tham chiếu nên ta không thể sửa cột này. Các sự kiện khác cũng cách hiểu tương tự nhé bạn.

Reply
Nhận xét này đã bị tác giả xóa.

Mình vẫn chưa làm được, Thầy giáo có thể giúp thêm được không.
Mình có 1 form, trên đó có
- 1 textbox1 và textbox2 để nhập liệu, giá trị sau khi nhập được lưu vào sheet1
- 1 textbox3 để nhập tìm kiếm
- 1 listbox để hiển khi textbox3 được nhập giá trị
- 1 nút nhập mới, 1 nút sửa, 1 nút xóa
khi tìm kiếm và chọn giá trị trong listbox, các giá trị hiện lên textbox1 và 2, để xóa được các giá trị trong textbox1 và 2 (giá trị này tương ứng với cột A và B của sheet1, vùng dữ liệu trong sheet1 từ A3 : B2000) thì làm thế nào thầy nhỉ?

Reply

cho hỏi tại sao lại dùng "a,b,c" mà không phải là "A,B,C" ý là chữ hoa với thương khi viết lệnh cho nút cập nhật với xóa đó ạ

Reply

Nếu bạn thực sự quan tâm đến nội dung bài viết xin để lại những ý kiến đóng góp vào khung bên dưới. Mỗi ý kiến đóng góp của độc giả là những chỉ dẫn quý báo để chúng tôi cung cấp những nội dung hữu ích hơn tới độc giả.