[Help] Viết Function Kiểm Tra Cột Dữ Liệu Null Khi Query Bị Báo Lỗi #Error

  • Portal
  • Tìm kiếm
  • Thành viên
  • Lịch
  • Hướng dẫn
  • Quyên góp
Thủ Thuật Access
Xin chào quý khách! Đăng nhập Đăng ký
Đăng nhập
Tên dùng
Mật khẩu: Quên mật khẩu?
Remember me
Thủ Thuật Access › Access Nâng Cao › Thủ thuật VBA v « Trở lại 1 2 3 4 5 ... 20 Tiếp theo » [Help] [Help] Viết function kiểm tra cột dữ liệu null khi query bị báo lỗi #Error Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes [Help] [Help] Viết function kiểm tra cột dữ liệu null khi query bị báo lỗi #Error
subasatran Offline Access Cơ Bản ** Bài viết: 35 Chủ đề: 10 Tham Gia: 18-12 -14 Điểm danh tiếng: 0 Tiền Access: 1,350.89Ac$ #1 15-12-20, 11:20 PM Xin chào Anh/Chị / Em Mình có viết một function nhỏ để kiểm tra giá trị của một cột trong một bảng. Tuy nhiên, nếu dòng dữ liệu là NULL thì query báo lỗi #Error. Nhờ mọi người có thể giúp đỡ cho mình biết function mình viết có bị lỗi gì hay không ? Cám ơn mọi người rất nhiều. Function mình viết như bên dưới: Mã:Public Function Get_Actual(ByVal Ccase As Double) As Double     Dim Actual As Double     Actual = Ccase     If IsNull(Actual) Or Nz(Actual, "") = "" Or Actual <= 0 Then         Get_Actual = 0     Else         Get_Actual = Actual     End If End Function Mình test trên một query như bên dưới. Infor       numbercase          Check_Null(gọi function Get_Actual(numbercase)) A                  1000                  1000 B                  1500                  1500 C                  NULL                 #Error D                     0                       0 E                    -50                      0 Chữ ký của subasatran Xin chào, mình là subasatran, Tham gia http://thuthuataccess.com/forum từ ngày 18-12 -14. Website Find Reply tranthanhan1962 Offline Thành viên đẳng cấp **** Bài viết: 2,375 Chủ đề: 86 Tham Gia: 30-10 -14 Điểm danh tiếng: 121 Tiền Access: 63,690.10Ac$ #2 16-12-20, 01:18 AM Dư thừa: Đã có function xác đinh dữ liệu null thì đâu cần viết function lam gì?      a/ Hàm IsNull () xác định bằng kiểu Boolean, True => Null, False => Is Not Null.      b/ Hàm VarType() xác định giá trị Null khi =1 Vì vậy, muốn xác định giá trị của cột Check_Null = 0 khi numbercase = null và bằng numbercase khi <> null chỉ cần đưa công thức vào.      1/ Check_Null: IIf(IsNull([numbercase])=-1;0;[numbercase]) hoặc:      2/Check_Null: VarType([numbercase])=0;0;[numbercase]) Bạn đã thiết đặt sai kiểu dữ liệu giá trị function nên nó báo lỗi thôi Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ Website Find Reply ongke0711 Offline Honorary members **** Bài viết: 3,560 Chủ đề: 61 Tham Gia: 10-04 -15 Điểm danh tiếng: 165 Tiền Access: 92,106.08Ac$ #3 16-12-20, 07:51 AM (Được chỉnh sửa: 16-12-20, 01:04 PM bởi ongke0711.) Bổ sung thêm: - Hàm của bạn khai báo dư 1 biến Actual, sao không dùng biến Ccase luôn? - Access có cái hàm tương tự bạn đang làm nhưng linh hoạt hơn đó là hàm: Nz(thamso, kiểu trả về). Một cái hàm Nz() - NullZero bạn đang dùng đã giải quyết được rồi, viết lại chi cho lòng vòng vậy?? Vd: nếu numcase là NULL Nz(numcase) =0 Nz(numcase, “”) = “” Nếu bạn muốn viết hàm bao gồm khử Null và khử số âm thì sửa lại như sau: Mã PHP:Public Function Get_Actual(ByVal Ccase As Variant) As Double    If Len(Nz(Ccase, "")) = 0 Or Ccase <0 Then        Get_Actual = 0    Else        Get_Actual = Ccase    End IfEnd Function - Dùng kết hợp hàm Len()+ Nz() vì: có trường hợp người dùng sử dụng phím Backspace xoá dữ liệu trong cột đó thì giá trị của cột đó không còn là Null mà là chuỗi có độ dài =0 ("zero length string"), khi đó hàm Nz() không còn tác dụng. - Tham chiếu giá trị Field từ Query Access thì phải khai báo là Variant, nó mới hiểu. Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake! ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ Website Find Reply subasatran Offline Access Cơ Bản ** Bài viết: 35 Chủ đề: 10 Tham Gia: 18-12 -14 Điểm danh tiếng: 0 Tiền Access: 1,350.89Ac$ #4 16-12-20, 05:26 PM Xin cảm ơn @tranthanhan1962 và @ongke0711 rất nhiều. Cách làm của ongke0711 hay quá.
tranthanhan1962 [/font Đã viết:]      1/ Check_Null: IIf(IsNull([numbercase])=-1;0;[numbercase]) hoặc:      2/Check_Null: VarType([numbercase])=0;0;[numbercase])
=> Vì mình kiểm tra field là số có giá trị >= 0 để đưa vào một biểu thức tính toán khác nên ko muốn sử dụng trực tiếp trên query. [font=Tahoma, Verdana, Arial, sans-serif]
ongke0711[/font Đã viết:[font=Tahoma, Verdana, Arial, sans-serif]] - Hàm của bạn khai báo dư 1 biến Actual, sao không dùng biến Ccase luôn?
=> Do mình còn có một biểu thức trong function này nên gán luôn trong ví dụ. Cho mình hỏi thêm là kiểu Variant nó có ảnh hưởng gì khi biểu thức trả về giá trị theo kiểu double không vậy ? Sau khi kiểm tra số này mình sẽ lấy số này để đưa vào một biểu thức tính toán khác với kiểu dữ liệu là double Chữ ký của subasatran Xin chào, mình là subasatran, Tham gia http://thuthuataccess.com/forum từ ngày 18-12 -14. Website Find Reply ongke0711 Offline Honorary members **** Bài viết: 3,560 Chủ đề: 61 Tham Gia: 10-04 -15 Điểm danh tiếng: 165 Tiền Access: 92,106.08Ac$
#5 16-12-20, 05:54 PM
(16-12-20, 05:26 PM)subasatran Đã viết: => Do mình còn có một biểu thức trong function này nên gán luôn trong ví dụ. Cho mình hỏi thêm là kiểu Variant nó có ảnh hưởng gì khi biểu thức trả về giá trị theo kiểu double không vậy ? Sau khi kiểm tra số này mình sẽ lấy số này để đưa vào một biểu thức tính toán khác với kiểu dữ liệu là double
Đã thiết lập hàm trả về là Double thì bạn cứ yên tâm là đúng kiểu dữ liệu trả về, còn khai báo Variant là cho tham số truyền vào. (Nếu bạn dùng Variant cho Double cũng được vậy vì đã là Variant tức là nó có thể là bất cứ kiểu dữ liệu gì) Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake! ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ Website Find Reply
« Bài trước | Bài tiếp »
Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Hướng Dẫn [Demo 1] Tạo Textbox tìm kiếm có gợi ý cách nhau dấu phẩy maidinhdan 14 1,928 12-09-24, 03:52 PM Bài mới nhất: nguyencaothong
[Thủ Thuật] Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access maidinhdan 73 23,451 24-06-24, 10:55 PM Bài mới nhất: mrgior
Photo [Thủ Thuật] Phần mềm Kiểm phiếu bầu cử đại biểu Quốc hội và HĐND các cấp trav2t 20 21,383 13-12-23, 09:57 AM Bài mới nhất: trav2t
Hướng Dẫn Xử lý dữ liệu trong subform sau khi đã bị đóng Recordset trước đó AnNguyen 6 327 04-08-23, 10:04 AM Bài mới nhất: ongke0711
Photo Dbclick từ 1 kết quả trên subform để mở main form với dữ liệu của dòng đó tvn_hut 11 3,854 10-04-23, 05:31 PM Bài mới nhất: cpucloi
  • Xem ở phiên bản có thể in
  • Theo dõi chủ đề này
Chuyển nhanh: Tin nhắn cá nhân Trang cá nhân Ai đang online ? Tìm kiếm Trang chủ diễn đàn Thông Tin Chung -- Thông báo ---- Chức năng diễn đàn -- Trao đổi Góp ý Access Cơ Bản -- Table -- Query -- Forms -- Report -- Macro -- Class Moudules -- Menu Bar/Ribbon -- Thành viên giúp nhau ---- Bài tập Access Access Nâng Cao -- Thư Viện Giáo Trình -- Thư Viện Hàm -- Thư viện thủ thuật -- Thủ thuật VBA -- Thư Viện Ứng Dụng ---- Share Code -- Tương tác Chương trình ngoài ---- MS SQL Server ---- Add-In -- Thảo Luận Access Thế giới lập trình -- VB.NET -- VB6 -- XML Thế Giới Văn Phòng -- Tin Học Văn Phòng ---- MS Word ---- Ms Excel ---- Ms PowerPoint -- Kỹ năng văn phòng ---- Sales & marketing -- English for Office Giao lưu giải trí -- Quán cóc -- CLB Âm Nhạc ---- Phòng chiếu phim -- Góc ảnh -- Góc Thơ -- Quán Văn Chương -- Vui cười Warehouse -- Chuyện bốn phương -- Liên Kết Website ---- Nhật ký webmaster ---- Góc Blogger ---- Góc MyBB -- Việc Làm Access -- Lưu Trữ ---- Phòng thử nghiệm User(s) browsing this thread: 1 Guest(s) Diễn Đàn Thơ Văn Thi Ẩm Lâu| Blog Học Excel| Nhật ký IT
  • Liên hệ
  • Thủ Thuật Access
  • Lên trên
  • Bản rút gọn
  • Tin RSS
Thời gian hiện tại : 28-11-24, 07:26 AM Mã nguồn bởi MyBB, © 2002-2024 MyBB Group. Linear ModeThreaded Mode

Từ khóa » Hàm Nz Trong Access