Hiển thị kết quả từ 1 đến 6 / 6
  1. #1
    Tham gia
    16-04-2006
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts

    Giúp em rắc rối trong việc truy vấn access bằng vb6

    để lấy ra số lượng của sản phẩm dùng vb
    Code:
    truyvan = "select soluong from kho where TenSP ='" & TenSP & "' and NgayHetHan = #" & NgayHetHan & "#"
    vấn đề là đối với 1 số sản phẩm và ngày hết hạn(không phải tất cả) thì gặp lỗi "Runtime 3021: error Either EOF and BOF is true,or current record has been deleted.Requested operation requires a current record" và có vẻ như ko đưa ra được kêt quả nào (recordcount = 0)
    Khi dùng câu truy vấn này trong access thì lại ko có vấn đề gì cả, vẫn đưa ra được số lượng sp

    về csdl thì trong bảg này có 3 trường là tensp(PK),ngayhethan(PK),soluong
    Quote Quote

  2. #2
    Tham gia
    10-09-2002
    Location
    The Hell
    Bài viết
    636
    Like
    0
    Thanked 1 Time in 1 Post
    chắc là bạn chưa kiểm tra recordcount nên mới gặp lỗi đó, khi kết quả trả về không có gì mà bạn gọi nextRecord thì bị lỗi liền.
    if (recordcount > 0){
    // Duyệt qua kết quả
    }

  3. #3
    Tham gia
    22-01-2008
    Bài viết
    37
    Like
    0
    Thanked 0 Times in 0 Posts
    tốt hơn hết kiểm .EOF hay .BOF trước khi xài, e.g.

    set rs = New ADODB.Recordset
    ...
    rs.Open ...

    if not rs.EOF then
    ' đọc kết quả
    else
    Msgbox "không có gì để đọc"
    end if

  4. #4
    Tham gia
    16-04-2006
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts
    em có thể khắc phục cái bao lỗi đó bằng cách kiểm tra recordcount hoặc EOF và BOF nhưg nếu như vậy thì dữ liệu lại ko lấy được.

    Câu truy vấn của e để trả về số lượng có trong kho rồi đem so sánh nếu bán vượt quá thì sẽ báo lỗi -> ko lấy ra được số lượng thì so sánh kiểu gì

  5. #5
    Tham gia
    18-04-2005
    Bài viết
    288
    Like
    0
    Thanked 1 Time in 1 Post

    Hấp dẫn đây !

    Quote Được gửi bởi bigprince View Post
    để lấy ra số lượng của sản phẩm dùng vb
    Code:
    truyvan = "select soluong from kho where TenSP ='" & TenSP & "' and NgayHetHan = #" & NgayHetHan & "#"
    vấn đề là đối với 1 số sản phẩm và ngày hết hạn(không phải tất cả) thì gặp lỗi "Runtime 3021: error Either EOF and BOF is true,or current record has been deleted.Requested operation requires a current record" và có vẻ như ko đưa ra được kêt quả nào (recordcount = 0)
    Khi dùng câu truy vấn này trong access thì lại ko có vấn đề gì cả, vẫn đưa ra được số lượng sp

    về csdl thì trong bảg này có 3 trường là tensp(PK),ngayhethan(PK),soluong
    Nếu bạn muốn dùng RecordCount thì phải thiết lập thuộc tính của connection như sau: mCnn.CursorLocation = adUseClient
    Trong đó mCnn là Connection đến CSDL.
    Mặc định của các Connection là adUseServer để giảm tải cho client. Như vậy bạn phải kiểm tra thuộc tính EOF, BOF của Recordset trước khi duyệt bằng While Not mRs.EOF...

    Chúc thành công,

  6. #6
    Tham gia
    16-04-2006
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts
    có adUseclient rồi ạ

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
  •