vba - ADODB Recordset.RecordCount giving incorrect answer -
i have issue recordset returning -1 recordcount when in fact there 1164 records.
i have checked query fine. though tells me there -1 records copyfromrecordset method still works , pastes correct results. never had issue before using rs.recordcount?
dim strsql string dim rs new adodb.recordset if cust = "jpm" port = "rp l99" else port = "rp v10" end if strsql = "my select query" rs.open strsql, cn, adopenkeyset, adlockoptimistic rs.movefirst getcompanies = rs.recordcount if getcompanies > 0 wslive.range("a" & rowcompanystart).copyfromrecordset rs wslive.range("c" & rowcompanystart & ":c" & getcompanies + rowcompanystart).numberformat = "0.00%" end if closerecordset rs end function
to actual count, need first move cursor last record move beginning. however, remember large dataset, moving , forth inefficient task. so, suggest following caution.
dim strsql string dim rs new adodb.recordset if cust = "jpm" port = "rp l99" else port = "rp v10" end if strsql = "my select query" rs.cursortype = adopendynamic rs.open strsql, cn, adopenkeyset, adlockoptimistic if not (rs.bof , rs.eof) rs.movelast rs.movefirst getcompanies = rs.recordcount wslive.range("a" & rowcompanystart).copyfromrecordset rs wslive.range("c" & rowcompanystart & ":c" & getcompanies + rowcompanystart).numberformat = "0.00%" 'else 'msgbox "no records !!" end if closerecordset rs end function
Comments
Post a Comment