Đánh giá chủ đề:
  • 3 Votes - 2.33 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Nhờ chữa lỗi lặp của hàm For trong VBA
#1
Hỏi: Nhập vào một mảng và một biến x, sau đó kiểm tra x có tồn tại trong mảng không? Nếu có thì xoá đi.
bài em đang làm:
http://www.mediafire.com/?4s6y7c1mqe6y9wq
Code:
Mã:
Option Compare Database
Dim a() As Integer
Dim n As Integer, x As Integer, i As Integer, j As Integer

Dim luu, luu1 As Variant
Private Sub cmb_kiemtra_Click()

On Error GoTo Loi
x = CInt(Me.txt_x.Value)
For i = 1 To n
  
    If a(i) = x Then
    MsgBox "Xuat hien x tai vi tri:" & i & " trong Mang."
    Else
        txt_xoax.Value = Null
       luu1 = luu1 & "," & a(i)
    End If
  
Next
On Error GoTo Loi
txt_xoax.Value = Right(luu1, Len(luu1) - 1)
Loi:
If Err.Number = 5 Then
DoCmd.CancelEvent
Else
If Err.Number = 94 Then
MsgBox "Vui Long Nhap x de Kiem Tra"
End If
End If
End Sub


Private Sub cmb_thuchien_Click()
txt_mang.Value = Null
txt_x = Null
txt_xoax = Null

While n <= 0
n = CInt(InputBox("Nhap Kich thuoc cua mang:"))
Wend
ReDim a(n)
For i = 1 To n
On Error Resume Next
a(i) = CInt(InputBox("Nhap Phan Tu thu " & i & " cua mang :", "Nhap Phan Tu"))
luu = luu & "," & a(i)
Next
txt_mang.Value = Right(luu, Len(luu) - 1)

End Sub

Private Sub cmb_try_Click()
txt_mang = ""
n = -1
txt_x = ""
txt_xoax = ""
End Sub
Các lỗi mắc phải:
khi viết xong code chạy lần đầu thì ổn lắm
ấn nút Nhập Mảng
[Hình: 4.jpactions=o]
sau đó thì nhập các phần tử của mảng.
[Hình: 4.jpactions=o]
rùi ấn nút Kiểm Tra và KQ
[Hình: 3.jpactions=o]
KQ:
[Hình: 3.jpactions=o]
đến đây vẫn ổn, rùi hàng loạt Confused_smile Confused_smile sảy ra:
em tiếp tục nhập x, nó toàn ra thế này:
[Hình: 3.jpg]

[Hình: 3.jpg]

rùi ấn Làm Lại, vẫn nhập mảng binh thường nhưng vãn bị lặp tương tự ở trên:

[Hình: 3.jpg]
và khi nhập x để kiểm tra vẫn bị tình trạng lặp tương tự.

nhờ NoName và các bạn trên room giúp đỡ em nhé, mới học VBA chân tay còn non nớt lắm. em cảm ơn.


Chữ ký của dieuchinhlu
Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Cao nhân tất hữu cao nhân trị
CAO NHÂN TẮT THỞ VÔ PHƯƠNG TRỊ
ღღღღღTài sản của dieuchinhlu (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
Bạn xem lại đoạn này trong sự kiện click nút Kiểm tra

Mã:
If a(i) = x Then
    MsgBox "Xuat hien x tai vi tri:" & i & " trong Mang."
    Else
        txt_xoax.Value = Null
       luu1 = luu1 & "," & a(i)
   End If
Theo đó, khi bạn xóa lần đầu thì đúng, nhưng từ lần thứ 2 trở đi thì mảng a(i) không có câu lệnh nào cập nhật lại danh sách mới cho nó cả!
Đúng ra nó phải là thế này:
Mã:
' tạo mảng B tạm
' tạo biến m tạm
' các giá trị mảng B() = mảngA()
' gán m=n
For i = 1 To n
If a(i) = x Then
    MsgBox "Xuat hien x tai vi tri:" & i & " trong Mang."
    ' Đoạn code Cập Nhật lại mảng b() có xóa giá trị tìm thấy
     'gán lại m=m-1
    Else
        txt_xoax.Value = Null
       luu1 = luu1 & "," & a(i)
    End If
next
'Gán mảng B = mảng a
'gán n=m

Đó là logic, bạn theo đó thực hiện nhé!
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan , Cafe Via He
#3

Cám ơn anh Noname nhiều nha, em đang vọc tiếp, Tongue_smile
Chữ ký của dieuchinhlu
Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Cao nhân tất hữu cao nhân trị
CAO NHÂN TẮT THỞ VÔ PHƯƠNG TRỊ
ღღღღღTài sản của dieuchinhlu (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
hix, vọc từ chiều tới h vẫn thế Cry_smile, chỉ đỡ đc cái nhập là hết bị lặp thui, NoName có thể viết rõ hơn cho em không ? em cảm ơn!
Chữ ký của dieuchinhlu
Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Cao nhân tất hữu cao nhân trị
CAO NHÂN TẮT THỞ VÔ PHƯƠNG TRỊ
ღღღღღTài sản của dieuchinhlu (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#5
File của bạn mình chỉ một chút các câu lệnh ở Form 3.
bạn xem thử hén
download
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Question [Help] Link tất các table trong một file.mdb bằng VBA MinhnHang 6 140 29-11-16, 05:18 PM
Bài mới nhất: MinhnHang
  Tránh xung đột dữ liệu trong access quocdung9999 16 1,686 23-11-16, 11:13 AM
Bài mới nhất: quocdung9999
  [Hỏi] Kết nối nhiều lần hay kết nối 1 lần trong ADO ưu điểm hơn Minh Tiên 1 113 10-11-16, 10:41 AM
Bài mới nhất: maidinhdan
  Summary bằng VBA trong MS Access. MinhnHang 6 313 08-11-16, 08:36 AM
Bài mới nhất: MinhnHang
  [Hỏi] Số Thứ Tự Theo Nhóm Hàng Hóa Trong Access pherotao 2 134 02-11-16, 03:05 PM
Bài mới nhất: pherotao

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ