VBA - SQL SELECT

W.E.B
W.E.B used Ask the Experts™
on
Hello,
I'm using a  cnn = New ADODB.Connection, to get some data from SQL SERVER 2008R2
When I run my simple select statment below, I'm getting thousands of records back. (in the sample attached, I should have received back the first  3 records back only).
if I run the same script inside SQL, I get the proper results. (one record per Tracking).

Any help is appreciated.

    Dim cnt As Integer
    Dim i As Integer
 For i = 2 To Range("A2").End(xlDown).Row + 1
 cnt = cnt + 1
 
' Start
cnn.Open "Provider=SQLOLEDB.1;User ID= xxxxxxxxxxxxxxxxxxxx

sql = "Select OrderNo, " & _
"NoteNumber from FinalizedOrderNotes " & _
"where NoteText Like ('%" & sh.Cells(i, 1) & "%') "

    rs.Open sql, cnn, adOpenDynamic, adLockOptimistic
    sh.Cells(i, 2).CopyFromRecordset rs
    rs.Close
    cnn.Close
   
     Next i

Thank you,
SAMPLE.xls
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
It looks like that if your target cell is empty your filter evaluates to '%%' with is no filter at all, explaining the too many records problem.  Also, it looks like you're pulling from column A instead of column B .

Author

Commented:
Hello,
This is the way it's supposed to be,
Column "A" is the noteText that I'm looking up in SQL
Results will be in column "B".

The main question I guess  is why is it not stopping and ending the macro after the last row used in Column "A"

Thanks,
How about something like this?

'
Range("a2").Select
Range(Selection, Selection.End(xlDown)).Select
RowCount = Selection.Rows.Count
Dim i As Integer
For i = 2 To RowCount + 1
    cnn.Open "Provider=SQLOLEDB.1;User ID= xxxxxxxxxxxxxxxxxxxx"
    Sql = "Select OrderNo, " & _
        "NoteNumber from FinalizedOrderNotes " & _
        "where NoteText Like ('%" & sh.Cells(i, 1) & "%') "
    rs.Open Sql, cnn, adOpenDynamic, adLockOptimistic
    sh.Cells(i, 2).CopyFromRecordset rs
    rs.Close
    cnn.Close
Next i

Author

Commented:
Awesome,
Thank you very much.
It worked.,

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial