SQL 002

MICROSCHEME 28/03/2010 18:41:21
#338077

Olha eu aqui de novo (ou novamente); gente, não estou querendo chupar o sangue de ninguém,
acontece que em ado eu conto fácil, mas como disse estou precisando aprender SQL e usar menos
ado.

Seguinte:

Digamos que eu tenha uma variavel Long tipo:

Dim lngRegistros as Long

Pois bem, sei (acho que sei) que o select pra contar registros da minha tabela ficaria assim:

sSql = [Ô]Select Count(*) From Apostas[Ô]
Conn. Execute sSql

Acredito que isso deve retornar a quantidade de registros da tabela.

Agora pergunto:

é possível ter o resultado desse Count(*) na variavel lngRegistros pra que eu possa
fazer comparações se a tabela está vazia ou contem registros gravados?

Tipo:

If lngRegistros = 0 then
. . .
elseif lngRegistos > 0 then
. . .
endif

é possível?

. . .

TECLA 28/03/2010 19:02:16
#338079
Tente assim:

Dim rs As New ADODB.Recordset
sSql = [Ô]Select Count(*) From Apostas[Ô]

rs.Open sSql, con
lngRegistros = rs.Fields(0)

If lngRegistros = 0 then
[txt-color=#007100] [ô]Rotina para igual a zero[/txt-color]
Else
[txt-color=#007100] [ô]Rotina maior que zero[/txt-color]
End If

rs.Close
Set rs = Nothing

FFCOUTO 28/03/2010 19:03:26
#338080
Resposta escolhida
Sim, é possível. Pórem você não poderá usar o objeto Connection, deverá ser usado o Recordset

Dim lngRegistros as Long

Sub ContarRegistros()
Dim r As ADODB.Recordset

lngRegistros = 0
Set r = New ADODB.Recordset
sSql = [Ô]Select Count(*) AS Total From Apostas[Ô]
r.Open sSql, Conn, 3
If not r.BOF Then lngRegistros = r([Ô]Total[Ô])
r.Close
Set r = Nothing
End Sub

ContarRegistros

If lngRegistros = 0 then
. . .
Elseif lngRegistos > 0 then
. . .
End If



MICROSCHEME 28/03/2010 19:35:37
#338082

Vlw . . .

Estou aprendendo.

Mesmo tendo a sql Select Count(*), ainda assim, preciso abrir um recordset, tanto na dica do Tecla quanto na dica do FFCouto.

Não vai mudar muito o código que já tenho, mesmo assim

Obrigado e fico devendo mais uma, e mais uma, e até a próxima

Blz . . .

Tópico encerrado , respostas não são mais permitidas