Hiển thị kết quả từ 1 đến 6 / 6
  1. #1
    Tham gia
    05-08-2009
    Bài viết
    8
    Like
    0
    Thanked 0 Times in 0 Posts

    Hỏi về cấu trúc if...else

    Em mới học visual basic gần 1 tuần, em có 1 thắc mắc muốn hỏi mọi người ,em làm một cái form, trên form em có vẽ một cái textbox có (name) là text3.
    Sau đó em làm một cái code như sau:
    Private Sub Text3_Change()
    Dim n As Integer
    n = Val(Text3.Text)
    If n < 4 Then MsgBox n & "< 4"
    Else: MsgBox n & "> 4"
    End If
    End Sub
    Sau đó em chạy chương trình và nhần các phím từ 0 -> 9 nó đều báo lỗi là:
    Compile eror:
    else without if
    Sau đó em bấm vào nút help thì them một thong báo mới nữa là:"The MSDN collection does not exist. Please reinstall MSDN."
    Tiếp đó em bấm nút ok thì nó bôi 1 lớp màu vàng lên phần chử: "Private Sub Text3_Change()"
    Mong mọi người giúp em với !
    Quote Quote

  2. #2
    Tham gia
    18-04-2005
    Bài viết
    288
    Like
    0
    Thanked 1 Time in 1 Post
    1. Đoạn lệnh của bạn bị sai cú pháp:
    Code:
    If n < 4 Then MsgBox n & "< 4"
    Else: MsgBox n & "> 4"
    End If
    Trong VB, nếu sau lệnh If chỉ làm 1 lệnh (không có Else) thì mới được viết như dòng 1, nếu có Else hoặc nhiều hơn 1 lệnh thì phải xuống hàng và kết thúc bằng End If.
    Nói thêm: Trong VB, toán tử ":" dùng để gộp các lệnh để viết trên cùng 1 dòng code.
    Như vậy, đoạn code của bạn phải viết như sau mới đúng cú pháp:
    Code:
    If n < 4 Then 
    MsgBox n & "< 4"
    Else: MsgBox n & "> 4"
    End If
    Hoặc viết cho sáng sủa hơn:
    Code:
    If n < 4 Then 
       MsgBox n & " < 4"
    Else 
       MsgBox n & " > 4"
    End If
    2. Sau đó em bấm vào nút help thì them một thong báo mới nữa là:"The MSDN collection does not exist. Please reinstall MSDN."
    MSDN (Microsoft Developers Network) là bộ trợ giúp của Visual Studio, đây là bộ trợ giúp dạng Microsoft Help khá hay đi kèm với bộ Visual Studio, khi cài chắc bạn chưa cài bộ này (Hình như 2 đĩa nếu dùng Visual Studio 98).
    3. Tiếp đó em bấm nút ok thì nó bôi 1 lớp màu vàng lên phần chử: "Private Sub Text3_Change()"
    Lúc này bạn đã vào chế độ Debug của VB, khi vào chế độ này, bạn có thể Watch (xem giá trị trong bộ nhớ của các biến), Immediate (Thực hiện các lệnh đơn), sửa chữa code sai,...

    Lần đầu viết code, ai cũng bỡ ngỡ cả, chúc bạn nhanh chóng vượt qua,

  3. #3
    Tham gia
    05-08-2009
    Bài viết
    8
    Like
    0
    Thanked 0 Times in 0 Posts
    Cho mình hỏi thêm là khi chạy chương trình thì chương trình chạy rất tốt nhưng khi bấm nút backspace để xoá chữ vừa nhập thì nó báo lỗi là:
    run-time eror '13':
    type mismatch
    Các bạn giúp mình cách khắc phục với

  4. #4
    Tham gia
    17-09-2007
    Bài viết
    333
    Like
    0
    Thanked 0 Times in 0 Posts
    Mình đã chạy thử chương trình của bạn, không có lỗi như bạn nói. Bởi vì bạn đã dùng lệnh val(text3.text)

  5. #5
    Tham gia
    18-04-2005
    Bài viết
    288
    Like
    0
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi ducvanst View Post
    Cho mình hỏi thêm là khi chạy chương trình thì chương trình chạy rất tốt nhưng khi bấm nút backspace để xoá chữ vừa nhập thì nó báo lỗi là:
    run-time eror '13':
    type mismatch
    Các bạn giúp mình cách khắc phục với
    Đúng là lỗi nằm ở hàm: Val(Text3.Text), hàm Val là hàm chuyển chuỗi số thành kiểu số (double). Biến n của bạn khai báo là kiểu Integer. Khi ô Text3 rỗng thì hàm này sẽ báo lỗi. Bạn hãy sửa code lại một chút như sau:
    Code:
    If IsNumeric(Text3.Text) Then
       n = CInt(Val(Text3.Text))
    Else
       n = 0
    End If
    Trong đó hàm IsNumeric để kiểm tra 1 chuỗi có phải là kiểu số hay không, hàm CInt để Convert giá trị Double thành kiểu Integer.

    Chúc vui,

  6. #6
    Tham gia
    05-08-2009
    Bài viết
    8
    Like
    0
    Thanked 0 Times in 0 Posts
    Cho mình hỏi là có sự khác nhau nào gữm hàm: Val() và hàm Cint() vậy.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •