Giúp em về hàm If Not EOF trong Vba

Liên hệ QC

alex_1989

Thành viên mới
Tham gia
16/10/12
Bài viết
4
Được thích
1
Em có đoạn code như sau :
If Sheet5.Range("H" & i).Value = "x" Then
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Sheet2.Range("A1").Value & "\DB\" & "ACV.mdb"
Set rs = cn.Execute("Select LP From Location Where LOCATION = '" & Sheet5.Range("F" & i) & "'")
If Not rs.EOF Then
MsgBox ( Sheet5.Range("F" & i) &":CO data ")
Else
MsgBox (" No data")
End If
End if
Mục đích là tìm mã LP này có trong Location đã đánh dấu x hay không, nếu có thì hiện thông báo ; Có data; nếu không thì hiện không có. Nhưng trong database của em thì location này không có LP này, nó có trường =Null . Test thấy nó hiện thông báo có LP trong location., thực tế là trong database không có data. em không hiểu lắm về cái IF NOT EOF
1598241631771.png

1598241837378.png
1598242697944.png
 
Em có đoạn code như sau :
If Sheet5.Range("H" & i).Value = "x" Then
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Sheet2.Range("A1").Value & "\DB\" & "ACV.mdb"
Set rs = cn.Execute("Select LP From Location Where LOCATION = '" & Sheet5.Range("F" & i) & "'")
If Not rs.EOF Then
MsgBox ( Sheet5.Range("F" & i) &":CO data ")
Else
MsgBox (" No data")
End If
End if
Mục đích là tìm mã LP này có trong Location đã đánh dấu x hay không, nếu có thì hiện thông báo ; Có data; nếu không thì hiện không có. Nhưng trong database của em thì location này không có LP này, nó có trường =Null . Test thấy nó hiện thông báo có LP trong location., thực tế là trong database không có data. em không hiểu lắm về cái IF NOT EOF
View attachment 243881

View attachment 243882
View attachment 243884
Câu trúc "If Not rs.EOF Then" nôm na hay dùng để duyệt qua hàng , cột của bản ghi (recordset) ,
không liên quan gì đến vấn đề xxx của bạn
Vui lòng upload file đầy đủ , để có thể nhận được phản hồi chi tiết hơn..
 
Muốn xét Recordset có trống thì phải xét cả rs.BOF và rs.EOF

If rs.BOF And rs.EOF Then
 
file đây ạ
 

File đính kèm

  • ACV_NPT.zip
    151.8 KB · Đọc: 7
Em có đoạn code như sau :
If Sheet5.Range("H" & i).Value = "x" Then
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Sheet2.Range("A1").Value & "\DB\" & "ACV.mdb"
Set rs = cn.Execute("Select LP From Location Where LOCATION = '" & Sheet5.Range("F" & i) & "'")
If Not rs.EOF Then
MsgBox ( Sheet5.Range("F" & i) &":CO data ")
Else
MsgBox (" No data")
End If
End if
Mục đích là tìm mã LP này có trong Location đã đánh dấu x hay không, nếu có thì hiện thông báo ; Có data; nếu không thì hiện không có. Nhưng trong database của em thì location này không có LP này, nó có trường =Null . Test thấy nó hiện thông báo có LP trong location., thực tế là trong database không có data. em không hiểu lắm về cái IF NOT EOF
View attachment 243881

View attachment 243882
View attachment 243884
Nhìn vào mã hàng của bạn, nếu mình không nhầm đó là nguyên vật liệu để sản xuất của hàng Acecook. :D.
 
Web KT
Back
Top Bottom