[Help] Viết Function Kiểm Tra Cột Dữ Liệu Null Khi Query Bị Báo Lỗi #Error
Có thể bạn quan tâm
- Portal
- Tìm kiếm
- Thành viên
- Lịch
- Hướng dẫn
- Quyên góp
Đăng nhập | |
Tên dùng | |
Mật khẩu: | Quên mật khẩu? |
Remember me |
- 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 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 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 ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ Website Find Reply ongke0711 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 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 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 | |
[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 | |
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
- Liên hệ
- Thủ Thuật Access
- Lên trên
- Bản rút gọn
- Tin RSS
Từ khóa » Hàm Nz Trong Access
-
Hàm NZ - Microsoft Support
-
Nz Function - Microsoft Support
-
MS Access: Nz Function - TechOnTheNet
-
Hàm Nz Tương đương Với Hàm Nz Trong MS Access Trong MySQL Là ...
-
Convert Null Thành Zero - Tổng Hợp Thủ Thuật Access
-
Access 2013 59 - Nz Function - YouTube
-
Undefined Function 'Nz' In Expression - Stack Overflow
-
MS Access IsNull() Function - W3Schools
-
Using Nz() NullToZero Function To Handle Null Values - FMS, Inc.
-
Trong Biểu Thức Của Access Tên Trường được Viết Như Thế Nào
-
Giáo Trình Hệ Quản Trị Cơ Sở Dữ Liệu Microsoft Access (Phần 2)
-
Item (Not Equal (Không Bằng))
-
Item (Region Group (Nhóm Vùng)) - ArcGIS