Khi mình nhấn vào button Nhap trong sheet chao thì màn hình báo lỗi như trên, mình không tìm được nguyên nhân vì sao. Mọi người chỉ giúp mình nhé. Mình đưa file lên nhờ mọi người xem dùm. Thank
Vâng xin chào bạn!
cảm ơn bạn đã đọc và ý kiến chân thành của bạn. mình xin nói qua cái Form nhập liệu của mình như thế này. Ø Với Nút “THÊM” thì thêm mới dữ liệu nhập vào trên các TEXTBOX và tự động nhập xuống hàng dưới. Ø Với Nút “UPDATE”: Khi cần sửa 1 người nào đó trong danh sách ta có thể
+ Tìm theo tên : nhập Họ Và Tên cần tìm bấm nút tìm “ cái hình nút tìm kiếm” và lấy dữ liệu tên người đó điền vào các textbox sửa nội dung cần sửa như “nội dung sdt; tk ngân hàng, ngày sinh, mã nhân viên….” Rồi sau đó cập nhật.
+ Tìm theo Số điện thoại và tìm theo SCMND củng vậy.
+ với TEXTBOX cần tìm kiếm: Ta nhập nội cần tìm kiếm vào textbox tìm kiếm, thì nội dung cần tìm kiếm sẽ hiện dưới LISTBOX, sau đó kích chọn mục muốn sửa dưới LISTBOX, nội dung LISTBOX cần sửa sẽ cập nhật lên TEXTBOX sau đó sửa nội dung cần sửa và “UPDATE” dữ liệu. Ø Với Nút “RESET”: đưa các textbox về nhập liệu mới. Ø Với Nút “XÓA DL”: Nhập Tên cần Tìm kiếm hoặc SDT; số CMND , hoặc kích vào listbox nội dung cần xóa và tiến hành bấm nút “XÓA DL”. Ø Cái đã làm được:
Khi tìm kiếm theo Họ Và Tên Số điện thoại và tìm theo SCMND tất cả các Nút đều không bị lổi. Ø Cái đang vướng:
Khi nhập chuổi tìm kiếm vào TEXTBOX cần tìm kiếm, danh sách hiện lên listbox chọn vào nội dung LISTBOX cần sửa, và sửa nội dung trên TEXTBOX nhưng khi Bấm nút “UPDATE” thì bị lỗi (Run time error “13”) .
Và với nút “XÓA DL” củng bị lổi (Run time error “13”).
Mình không phải dân chuyên nên với khả năng của mình chỉ được như vậy mong mọi người giúp đỡ thêm để hoàn thiện.
mình xin chân thành cảm ơn!
@Chủ bài đăng: Nên chú tâm hơn trong việc xây dựng CSDL của bạn, như sau:
Số TT
Họ Và Tên
Mã NV
Chức Danh
Ngày Sinh
Giới Tính
Số Đ.Thoại
Số CMND
1
phạm văn quốc
PVQ00
Trưởng Phòng
25/09/2012
Nam
0963789566
So CMND
2
nguyễn thi thơm
NTT00
Trưởng Phòng
25/09/2012
Nu
0899563225
9999999999
3
nguyễn văn ti
NVT00
Trưởng Phòng
25/09/2012
Nam
0325698654
1234564560
4
nguyễn văn quang
NVQ00
Trưởng Phòng
25/09/2012
Nam
56666666666
55666666666
5
nguyễn văn quang
NVQ01
Trưởng Phòng
25/09/2012
Nam
0006666666
555555555555
Thứ nhất: Tên người là danh từ riêng, cần viết bông, hết thảy các từ.
Thứ nhì: Nên có trật tự hơn; Ví dụ Mới sinh ra, người ta đã có ngày sinh & giới tính, khi ấy chưa ai có thể có chức danh;
Thông thường mọi người cần có CNND hay CCCD, còn SĐT thì thường có sau
Thứ ba: Trong 1 cơ sở, số chức danh không nhiều & như thế sẽ dẫn đến việc trong CSDL sẽ trùng lắp nhiều khi nhập các chức danh này; Nếu là mình thì sẽ lập cho nó 1 bảng danh mục để tiện nhiều thứ khi nhập liệu như giảm tính đồ sộ không cần thiết, Sai chính tả ngớ ngẫn khi nhập chức danh,. . . .
Vâng xin chào bạn!
cảm ơn bạn đã đọc và ý kiến chân thành của bạn. mình xin nói qua cái Form nhập liệu của mình như thế này. Ø Với Nút “THÊM” thì thêm mới dữ liệu nhập vào trên các TEXTBOX và tự động nhập xuống hàng dưới. Ø Với Nút “UPDATE”: Khi cần sửa 1 người nào đó trong danh sách ta có thể
+ Tìm theo tên : nhập Họ Và Tên cần tìm bấm nút tìm “ cái hình nút tìm kiếm” và lấy dữ liệu tên người đó điền vào các textbox sửa nội dung cần sửa như “nội dung sdt; tk ngân hàng, ngày sinh, mã nhân viên….” Rồi sau đó cập nhật.
+ Tìm theo Số điện thoại và tìm theo SCMND củng vậy.
+ với TEXTBOX cần tìm kiếm: Ta nhập nội cần tìm kiếm vào textbox tìm kiếm, thì nội dung cần tìm kiếm sẽ hiện dưới LISTBOX, sau đó kích chọn mục muốn sửa dưới LISTBOX, nội dung LISTBOX cần sửa sẽ cập nhật lên TEXTBOX sau đó sửa nội dung cần sửa và “UPDATE” dữ liệu. Ø Với Nút “RESET”: đưa các textbox về nhập liệu mới. Ø Với Nút “XÓA DL”: Nhập Tên cần Tìm kiếm hoặc SDT; số CMND , hoặc kích vào listbox nội dung cần xóa và tiến hành bấm nút “XÓA DL”. Ø Cái đã làm được:
Khi tìm kiếm theo Họ Và Tên Số điện thoại và tìm theo SCMND tất cả các Nút đều không bị lổi. Ø Cái đang vướng:
Khi nhập chuổi tìm kiếm vào TEXTBOX cần tìm kiếm, danh sách hiện lên listbox chọn vào nội dung LISTBOX cần sửa, và sửa nội dung trên TEXTBOX nhưng khi Bấm nút “UPDATE” thì bị lỗi (Run time error “13”) .
Và với nút “XÓA DL” củng bị lổi (Run time error “13”).
Mình không phải dân chuyên nên với khả năng của mình chỉ được như vậy mong mọi người giúp đỡ thêm để hoàn thiện.
mình xin chân thành cảm ơn!
. . . . . Ø Cái đang vướng:
. . . . , danh sách hiện lên listbox chọn vào nội dung LISTBOX cần sửa, và sửa nội dung trên TEXTBOX nhưng khi Bấm nút “UPDATE” thì bị lỗi (Run time error “13”) .
Và với nút “XÓA DL” củng bị lổi (Run time error “13”).
Các chúng tôi đã chỉ cho bạn lỗi của 2 macro này là chương trình chưa biết cách tìm đến dòng nào đó trên CSDL để lưu dữ liệu;
Nói rõ hơn là bạn đang bắt chương trình lưu dữ liệu từ các TextBox lên dòng nhỏ hơn dòng có chỉ số dòng bằng 1!
Ø Với Nút “UPDATE”: Khi cần sửa 1 người nào đó trong danh sách ta có thể
+ Tìm theo tên : nhập Họ Và Tên cần tìm bấm nút tìm “ cái hình nút tìm kiếm” và lấy dữ liệu tên người đó điền vào các textbox sửa nội dung cần sửa như “nội dung sdt; tk ngân hàng, ngày sinh, mã nhân viên….” Rồi sau đó cập nhật.
+ Tìm theo Số điện thoại và tìm theo SCMND củng vậy.
+ với TEXTBOX cần tìm kiếm: Ta nhập nội cần tìm kiếm vào textbox tìm kiếm, thì nội dung cần tìm kiếm sẽ hiện dưới LISTBOX, sau đó kích chọn mục muốn sửa dưới LISTBOX, nội dung LISTBOX cần sửa sẽ cập nhật lên TEXTBOX sau đó sửa nội dung cần sửa và “UPDATE” dữ liệu.
Nếu là mình thì mình sẽ không thực hiện việc tìm theo tên người vì 1 số lý do. . . , mà trong đó có lý do về lỗi chính tả
& như vậy càng không thể tìm theo SĐT hay CCCD: Một điều hiễn nhiên là ta có số ĐT hay số CCCD của ai đó là ta đã biết tên (& cả họ) người đó.
& mình sẽ tìm theo mã NV, như cách sau: Tìm theo mã của cá nhân; Ví dụ như bảng dưới đây:
Nếu là mình thì mình sẽ không thực hiện việc tìm theo tên người vì 1 số lý do. . . , mà trong đó có lý do về lỗi chính tả
& như vậy càng không thể tìm theo SĐT hay CCCD: Một điều hiễn nhiên là ta có số ĐT hay số CCCD của ai đó là ta đã biết tên (& cả họ) người đó.
& mình sẽ tìm theo mã NV, như cách sau: Tìm theo mã của cá nhân; Ví dụ như bảng dưới đây:
Thật cảm ơn bạn, nhưng do tính chất của mỗi công việc nên mình phải thiết lập như vậy, chỉ cần họ đọc họ tên, nếu trùng tên học đọc SCMND, hay SDT thì mình tìm ra người đó ngay, hay nếu người đi làm hộ họ chỉ cần đọc SDT, vì mỗi người chỉ 1 CMND, 1 số Điện thoại chính để liên lạc.
Trong tất cả các trường dữ liệu của bạn ta phải phân ra
(a) 1 số trường/cột phải có ngay từ đầu; nếu thiếu nó ta không nên nhập dòng dữ liệu đó, như
[STT], [Mã NV], [Tên NV], [Phái tính], [Ngày sinh]
(b) 1 số trường có thể bổ sung sau, như [CCCD] (do chưa đến tuổi cấp], [Mã số thuế], [Nơi cư ngụ],. . . .
(c) 1 số trường có thể thay đổi, như [Chức vụ], [Đơn vị CT], . . . . .
Trong câu lệnh trích dẫn trên chỉ chứa những trường/cột ghi ở điểm (a) mà thôi;
Nếu không thì bạn tự tìm ra nguyên nhân làm sáng tỏ tiếp đi nha . . . .
Trong tất cả các trường dữ liệu của bạn ta phải phân ra
(a) 1 số trường/cột phải có ngay từ đầu; nếu thiếu nó ta không nên nhập dòng dữ liệu đó, như
[STT], [Mã NV], [Tên NV], [Phái tính], [Ngày sinh]
(b) 1 số trường có thể bổ sung sau, như [CCCD] (do chưa đến tuổi cấp], [Mã số thuế], [Nơi cư ngụ],. . . .
(c) 1 số trường có thể thay đổi, như [Chức vụ], [Đơn vị CT], . . . . .
Trong câu lệnh trích dẫn trên chỉ chứa những trường/cột ghi ở điểm (a) mà thôi;
Nếu không thì bạn tự tìm ra nguyên nhân làm sáng tỏ tiếp đi nha . . . .
Chân thành cảm ơn sự nhiệt tình của bạn rất nhiều, với sự góp ý của bạn mình đã hoàn thành được form nhập liệu của riêng mình, và mình biết mình còn rất nhiều thiếu sót cũng như sự không linh hoạt trong câu lệnh, mong bạn có gì xin giúp đỡ thêm. Chúc bạn sức khỏe thật nhiều để giúp đỡ cho diễn đàn ta ngày còn phát triển.
'NUT THEM DU LIEU '
Private Sub img_them_Click()
Dim WS As Worksheet: Dim lRow As Long
Set WS = ThisWorkbook.Sheets("DATA")
3 If Excel.WorksheetFunction.And(Me.txt_hvt.Value <> "", Me.txt_ngaysinh.Value <> "", Me.txt_diachi.Value <> "", Me.txt_chucdanh.Value <> "", Me.txt_date_bd.Value <> "", Me.txt_date_kt.Value <> "", Me.txt_nh.Value <> "", Me.txt_luong.Value <> "") Then
If Excel.WorksheetFunction.CountIfs(WS.Range("h:h"), Me.txt_cmnd.Value) > 0 Then
MsgBox ("So CMND da ton tai"): Exit Sub
End If
7 If Excel.WorksheetFunction.CountIfs(WS.Range("c:c"), Me.txt_nhanvien.Value) > 0 Then
MsgBox ("Ma nhan vien da ton tai"): Exit Sub
End If
10 If Excel.WorksheetFunction.CountIfs(WS.Range("g:g"), Me.txt_sdt.Value) > 0 Then
MsgBox ("So Dien Thoai da ton tai")
End If
13 If Excel.WorksheetFunction.CountIfs(WS.Range("i:i"), Me.txt_stk.Value) > 0 Then
MsgBox ("So Tai Khoan Ngan Hang ton tai"): Exit Sub
End If
16 If Excel.WorksheetFunction.CountIfs(WS.Range("k:k"), Me.txt_email.Value) > 0 Then
MsgBox ("Email da ton tai"): Exit Sub
End If
18 lRow = 1 + WS.[B4].End(xlDown).Row 'Gán Vào Tùng Côt Excel: '
WS.Range("b" & lRow).Value = Me.txt_hvt.Value: WS.Range("c" & lRow).Value = Me.txt_nhanvien.Value
WS.Range("d" & lRow).Value = Me.txt_chucdanh.Value
WS.Range("e" & lRow).Value = Format(Me.txt_ngaysinh.Value, "dd/mm/yyyy")
WS.Range("g" & lRow).Value = Me.txt_sdt.Value: WS.Range("f" & lRow).Value = Me.txt_sex.Value
WS.Range("h" & lRow).Value = Me.txt_cmnd.Value: WS.Range("i" & lRow).Value = Me.txt_stk.Value
WS.Range("j" & lRow).Value = Me.txt_nh.Value: WS.Range("L" & lRow).Value = Me.txt_email.Value
WS.Range("K" & lRow).Value = Me.txt_diachi.Value: WS.Range("m" & lRow).Value = Me.txt_luong.Value
WS.Range("n" & lRow).Value = Format(Me.txt_date_bd.Value, "dd/mm/yyyy")
WS.Range("o" & lRow).Value = Format(Me.txt_date_kt.Value, "dd/mm/yyyy")
WS.Range("p" & lRow).Value = Me.txt_img_url.Value
'Sau Khi Nhâp Du Liêu Xong Ta Cân Phai Xóa Du Liêu Nên Dùng Sub Call KhoiTaoDuLieu
Call KhoiTaoDuLieu '? '
MsgBox ("Thêm Thành Công")
Else
MsgBox ("Chua Nhâp Du Du Liêu")
End If
End Sub
(1) Nếu bạn dời dòng lệnh mang số 18 lên trước dòng lệnh mang số 3 thì các dòng lệnh 4, 7, 10, 13 & 16 sẽ không phải lấy vùng nguyên toàn bộ số dòng trang tính như thế.
Chuyện này không nhỏ vì nó đi suốt trong khi nó tồn tại cùng bạn.
(2) Câu lệnh mang số 3 nên chỉ liệt kê các trường cột sống của CSDL mà thôi; Các trường địa chỉ, SĐT, chức danh,. . . chưa cần đưa làm điều kiện phải nhập đủ ngay từ đầu.
(3) Theo mình, số liệu Ngày-Tháng-Năm nên là MM/DD/yyyy & định dạng trên trang tính để quen mắt là DD/MM/yyyy.