2009-03-31 34 views
5

Làm việc với một số mã VBA trong Access khi một bộ điều kiện rất cụ thể được đáp ứng nó sẽ bật lên một InputBox yêu cầu cho một số nguyên. Càng xa càng tốt.VBA Không IsNull

Private Sub Command10_Click() 

    If Not IsNull(mrf) Then 
     If min <> max Then 
      If qty <= min Then 
       mrf = GetParamValue 
      End If 
     End If 
    End If 
    End Sub 

Vấn đề là không phải IsNull có vẻ bị bỏ qua. Tôi muốn nó yêu cầu một giá trị được nhập trừ khi giá trị đã có. Điều này tiếp tục kích hoạt Hộp nhập liệu miễn là min <> tối đa và qty < = điều kiện tối thiểu được đáp ứng. Tôi đang thiếu gì ở đây?

+0

Ahh có vẻ như vấn đề của tôi là comin g từ đâu đó khác. – Terry

Trả lời

11

Nếu mrf là Variant, thì đó là bước đầu Empty, không Null. do đó bạn phải sử dụng IsEmpty() chức năng.

+1

Tuyệt vời này cố định nó! +1 ngày mai khi tôi có nhiều phiếu bầu hơn – Terry

+1

Một tùy chọn khác sẽ là khởi tạo mrf thành null. Tôi nhận thấy anh ta không tuyên bố bất kỳ biến nào của anh ấy (min, max, mrf) mà nói chung là một ý tưởng tồi. Bật "Option Explicit" và bạn sẽ tránh được rất nhiều lỗi logic như thế này. – JohnFx

4

Không, Không IsNull đang hoạt động hoàn hảo.

Hãy nhớ rằng, IsNull là hàm trả về TRUE nếu thông số được chuyển đến giá trị là null và ngược lại là false.

của bạn "Nếu Không IsNull (MRF) Sau đó," tuyên bố dịch sang tiếng Anh là "Nếu MRF là không null thì"

điều đó có nghĩa là khi MRF có giá trị, sau đó bạn đang xử lý các mã bên trong nếu tuyên bố. Nếu bạn muốn mã bên trong kích hoạt khi mrf IS rỗng, thì bạn cần xóa NOT khỏi tuyên bố.

+0

LOL Tôi đã có một khoảnh khắc. Cảm ơn. – Terry

1

Đoán của tôi là mrf không phải là rỗng, ngay cả khi nó trống hoặc cái gì khác. Nó cũng có thể là Không có gì, khác với null ở đất VBA (tôi nghĩ). Hãy thử chạy mã trong trình gỡ rối và xem xét giá trị của mrf. Tùy thuộc vào những gì mrf là, bạn có thể làm một thử nghiệm khác nhau (như kiểm tra len (mrf) hoặc không isNothing (mrf) hoặc nếu nó là một số nguyên, và nó là số không, sau đó mrf <> 0 .... bạn có được ý tưởng . Hy vọng rằng sẽ giúp!

+0

+1 ngày mai nữa, cảm ơn! – Terry