?
Solved

sql in ado

Posted on 2000-05-12
11
Medium Priority
?
230 Views
Last Modified: 2013-11-23
Hi guys,
  I am using  an ado .I require to execute an sql statment such as "Select count(empno) from emp".I want to return the value of count to a variable.How can I do this"
0
Comment
Question by:shyma
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 3
11 Comments
 
LVL 15

Expert Comment

by:StingRaY
ID: 2806468
shyma

Try this:

Dim rs As New ADODB.Recordset
rs.open "SELECT COUNT(empno) AS EMPCOUNT FROM emp",cn
rs!EMPCOUNT will provide "COUNT(empno)" from your SQL
Don't for get to close rs and set it to nothing.
0
 
LVL 4

Expert Comment

by:mberumen
ID: 2806527
shyma,  the cn on stingray's code refers to the connection to the database.
remember to declare it at the top of your code

Sub OpenMyDB()
Dim cn As New Connection
Dim rs As Recordset
Dim intCount as integer
'Create the connection.
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\Program Files\Microsoft Office\Office\" & _
        "Samples\Northwind.mdb;"
 
'Create recordset reference and set its properties.
    Set rs = New ADODB.Recordset
 'Open recordset.
    rs.open "SELECT COUNT(empno) AS EMPCOUNT FROM emp",cn

intCount=rs(0)

    rs.Close
set rs=nothing
    cn.Close
set cn=nothing
 
End Sub


'regards
0
 
LVL 15

Expert Comment

by:StingRaY
ID: 2809572
mberumen

Thank you for referring cn to its origin.
I forgot to tell shyma what cn is.

regards
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:shyma
ID: 2810328
when I applied the sql statment I got the count correctly.But my problem is not solved.I used findfirst and findnext method in dao.But in ado there is only find method.
   Can you please tell me whether find method will search for a record from the beginning and to move to next record what I have to use ?
  Similarly in dao we check whether the record is there or not with Nomatch property.How to make a check in case of ado?.Please suggest
0
 

Author Comment

by:shyma
ID: 2810330
Adjusted points from 20 to 25
0
 
LVL 4

Accepted Solution

by:
mberumen earned 75 total points
ID: 2811649
shyma... When you say that you want to search for e record from the beginning?...  you could select the record based on a condition that you can include in your SQL statement

i.e.
 rs.open "SELECT * FROM emp WHERE lastname='Smith';",cn

if rs.EOF<>True then
'We found a record!
else
'Record not found
end if
rs.close

Now if you want to select various records and scroll through them then use the rs.movenext ,movefirst or movelast to navigate through them

i.e.

 rs.open "SELECT * FROM emp WHERE lastname='Smith';",cn
Do while Not rs.eof
if rs.firstname="Bob" then
'We found Bob!
end if
rs.movenext
loop
rs.close

regards
0
 

Author Comment

by:shyma
ID: 2813073
Thank you for the answer.
0
 
LVL 15

Expert Comment

by:StingRaY
ID: 2813075
shyma:
This is Find Syntax I copied from MSDN.

Find (criteria, SkipRows, searchDirection, start)

Parameters

criteria   A String containing a statement that specifies the column name, comparison operator, and value to use in the search.

SkipRows   An optional Long value, whose default value is zero, that specifies the offset from the current row or start bookmark to begin the search.

searchDirection   An optional SearchDirectionEnum value that specifies whether the search should begin on the current row or the next available row in the direction of the search. Its value can be adSearchForward or adSearchBackward. The search stops at the start or end of the recordset, depending on the value of searchDirection.

start   An optional Variant bookmark to use as the starting position for the search.

------------------------
PS.
..NoMatch is equivalent to .EOF
if .Find return no record found , .EOF = True
otherwise, Cursor will pose to result record.

0
 
LVL 15

Expert Comment

by:StingRaY
ID: 2813085
mberumen:
Your answer is okay. But if you want to search thru 1,000,000 record, it means you have to take 1,000,000 itteration.
0
 
LVL 4

Expert Comment

by:mberumen
ID: 2813168
I agree stingRay,  I wasn't sure of what shyma was trying to accomplilsh, however.  I assume that you would limit the amount of records in your recordset by running a query or a filter before opening the recordset.

regards
0
 
LVL 15

Expert Comment

by:StingRaY
ID: 2813316
Ok.
Let shyma take his own decision.
regards.
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question