Access
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Access

Cách kiểm tra xem người dùng có nhấp vào [Hủy] trên InputBox trong VBA hay không

Bạn có biết rằng có thể phân biệt giữa người dùng nhấp "OK" trên InputBox với "Hủy", ngay cả khi họ không nhập bất kỳ văn bản nào?

Hãy xem xét mã mẫu sau:

Sub InputBoxTest()
    Dim Result As String
    
    Result = InputBox("Leave this box blank")
    If StrPtr(Result) = 0 Then
        Debug.Print "User clicked [Cancel]"
    ElseIf Len(Result) = 0 Then
        Debug.Print "User clicked [OK]"
    Else
        Debug.Print "User can't follow instructions"
    End If
    
End Sub

Đây là mã thử nghiệm đang hoạt động:

Nếu bạn quan tâm đến lý do tại sao điều này hoạt động, tôi khuyên bạn nên đặt câu hỏi sau trên stackoverflow:Những lợi ích và rủi ro của việc sử dụng StrPtr trong VBA là gì? Cả hai câu trả lời được bình chọn nhiều nhất (từ người dùng Comintern và GSerg) đều đáng đọc để có kiến ​​thức nền tảng.

Tham chiếu bên ngoài

Hàm InputBox (Visual Basic for Applications) Microsoft Docso365devx Những lợi ích và rủi ro khi sử dụng hàm StrPtr trong VBA là gì? Trong khi đang tìm cách kiểm tra khi người dùng hủy InputBox, tôi tình cờ gặp hàm StrPtr. Tôi tin rằng nó sẽ kiểm tra xem một biến đã từng được gán giá trị hay chưa và trả về 0 nếu nó chưa bao giờ Stack OverflowChrisB


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CÁCH THỨC:Chạy các tác vụ đã lên lịch với Microsoft Access

  2. Cách liên tục kiếm được giải thưởng MVP của Microsoft Access

  3. TIN NỔI BẬT:Đã phát hành Microsoft SQL Server Native Client 18 mới!

  4. Thiết kế Trình kích hoạt T-SQL của Microsoft

  5. Tìm tất cả các truy vấn sử dụng một bảng cụ thể