TAMANHO DO RESULTADO DA PESQUISA...
eu!!!!!!!!!!!!!!!
seguinte: preciso fazer uma pesquisa e saber o tamanho (quantidade de registros) do resultado.
atualmente estou usando assim:
SQL = "Select * From clientes Where area like '*" + TxArea + "*' AND ativo = 'S' Order by nome , codigo"
DtCliente.RecordSource = SQL
DtCliente.Refresh
DtCliente.Recordset.MoveLast
fimdosclientes = DtCliente.Recordset.RecordCount
mas se a pesquisa não retornar nenhum registro, dá erro e tenho q tratar do error para informar que ficou tamanho=0
pergunta:
num tem alguma forma de retornar true ou false de acordo com o resultado da pesquisa??? ou mesmo de saber quantos registros estão neste resultado???
VALEU!!!!!!!
seguinte: preciso fazer uma pesquisa e saber o tamanho (quantidade de registros) do resultado.
atualmente estou usando assim:
SQL = "Select * From clientes Where area like '*" + TxArea + "*' AND ativo = 'S' Order by nome , codigo"
DtCliente.RecordSource = SQL
DtCliente.Refresh
DtCliente.Recordset.MoveLast
fimdosclientes = DtCliente.Recordset.RecordCount
mas se a pesquisa não retornar nenhum registro, dá erro e tenho q tratar do error para informar que ficou tamanho=0
pergunta:
num tem alguma forma de retornar true ou false de acordo com o resultado da pesquisa??? ou mesmo de saber quantos registros estão neste resultado???
VALEU!!!!!!!
Tem sim.
Se o recordset não encontrar nenhum registro a propriedade EOF (e BOF) será true, logo :
Se o recordset não encontrar nenhum registro a propriedade EOF (e BOF) será true, logo :
if DtCliente.[txt-color=#0000ff]eof[/txt-color] then
msgbox "não há registros !!"
end if
infelizmente esta errado... nem existe essa função ligada a um dataobject.....
deu METHOD OR DATA MENBER NOT FOUND...
num terias outra ideia???
deu METHOD OR DATA MENBER NOT FOUND...
num terias outra ideia???
Se vc está utilizando DAO, (não sei explicar o porque disto acontecer), você precisa reposicionar o ponteiro para que consiga contar. Por exemplo
DtCliente.Recordset.MoveFirst
DtCliente.Recordset.MoveLast
fimdosclientes = DtCliente.Recordset.RecordCount
mas acontece, que se vc utilizar o movefirst ou movelast em um recordset vazio, dá erro... e o q preciso ÂÂÂ'q saber se pelo menos ele ta vazio ou naum...
pq se naum vou ter q tratar do erro para ele pular esta consulta...
existe 28 consultas com 28 objects data diferentes que estão em serie...
e para não ter q usar um tratamento de erro para cada um deles, querioa apenas checar se existe registros, se existir continue e caso contrario, pule para a proxima pesquisa...
ou seja: contar eu posso desde q haja registros para isso...
obrigado e continua na espera de ajuda de vcs amigos...
pq se naum vou ter q tratar do erro para ele pular esta consulta...
existe 28 consultas com 28 objects data diferentes que estão em serie...
e para não ter q usar um tratamento de erro para cada um deles, querioa apenas checar se existe registros, se existir continue e caso contrario, pule para a proxima pesquisa...
ou seja: contar eu posso desde q haja registros para isso...
obrigado e continua na espera de ajuda de vcs amigos...
cara, no caso, é o cursor que está referenciado errado,
no caso da qtde não ser informada diretamente pela função
data.recordset.recordcount
e já no caso do movefirst e movelast, basta voce informar assim:
e sobre essa sua foto, ela expressa direitinho o que nós passamos quando um código não dá certo... mas cuidado com as gastrites... hehehe
[S20][S53]
no caso da qtde não ser informada diretamente pela função
data.recordset.recordcount
e já no caso do movefirst e movelast, basta voce informar assim:
dim qtde as integer
if data.recordset.eof = false then
data.recordset.movelast
data.recordset.movefirst
contador = data.recordset.recordcount
else
qtde = 0
end ife sobre essa sua foto, ela expressa direitinho o que nós passamos quando um código não dá certo... mas cuidado com as gastrites... hehehe
[S20][S53]
Que tipo de acesso está utilizando ?
Agora que vi se tratar de um objeto data...
Ficaria assim :
Ficaria assim :
if DtCliente.recordset.eof then
msgbox "não há registros !!"
end if
20 DtVenda.DatabaseName = DriveTrabalho + "\Arquivos de programas\Down_Ups\dados\" + Viniciais + "\vendas\vendas" + CbAno + ".mdb"
30 DtVenda.RecordSource = "vendas"
40 SQL = "Select * From vendas Where codigo_do_cliente = '" + DtCliente.Recordset.Fields("codigo") + "' AND entregue = 'NÃO' Order by codigo"
50 DtVenda.RecordSource = SQL
60 If DtVenda.Recordset.EOF = False Then
70 Data.Recordset.MoveLast
80 Data.Recordset.MoveFirst
90 qtde = Data.Recordset.RecordCount
100 Else
110 qtde = 0
120 End If
deu erro na linha 60
OBJECT VARIABLE OR WITH BLOCK VARIABLE NOT SET
EU VOU DAR UM SOCO NESTE MONITOR MEU DEUS!!!!!!!!!!!!!!!
30 DtVenda.RecordSource = "vendas"
40 SQL = "Select * From vendas Where codigo_do_cliente = '" + DtCliente.Recordset.Fields("codigo") + "' AND entregue = 'NÃO' Order by codigo"
50 DtVenda.RecordSource = SQL
60 If DtVenda.Recordset.EOF = False Then
70 Data.Recordset.MoveLast
80 Data.Recordset.MoveFirst
90 qtde = Data.Recordset.RecordCount
100 Else
110 qtde = 0
120 End If
deu erro na linha 60
OBJECT VARIABLE OR WITH BLOCK VARIABLE NOT SET
EU VOU DAR UM SOCO NESTE MONITOR MEU DEUS!!!!!!!!!!!!!!!
20 DtVenda.DatabaseName = DriveTrabalho + "\Arquivos de programas\Down_Ups\dados\" + Viniciais + "\vendas\vendas" + CbAno + ".mdb"
30 DtVenda.RecordSource = "vendas"
40 SQL = "Select * From vendas Where codigo_do_cliente = '" + DtCliente.Recordset.Fields("codigo") + "' AND entregue = 'NÃO' Order by codigo"
50 DtVenda.RecordSource = SQL
60 If DtVenda.Recordset.EOF Then
70 MsgBox "não há registros !!"
80 Else
90 MsgBox "há registros !!"
100 End If
deu erro na linha 60
OBJECT VARIABLE OR WITH BLOCK VARIABLE NOT SET
(ACABO DE DESTRONCAR UM DEDO... O VIDRO DO MONITOR é BEM FORTE VISSE???)
30 DtVenda.RecordSource = "vendas"
40 SQL = "Select * From vendas Where codigo_do_cliente = '" + DtCliente.Recordset.Fields("codigo") + "' AND entregue = 'NÃO' Order by codigo"
50 DtVenda.RecordSource = SQL
60 If DtVenda.Recordset.EOF Then
70 MsgBox "não há registros !!"
80 Else
90 MsgBox "há registros !!"
100 End If
deu erro na linha 60
OBJECT VARIABLE OR WITH BLOCK VARIABLE NOT SET
(ACABO DE DESTRONCAR UM DEDO... O VIDRO DO MONITOR é BEM FORTE VISSE???)
Marcelo
Eu não entendi direito quando você diz "28 Objetos Data". Você quer dizer 28 DataCotrols no mesmo Form?
Se for, tem algo muito errado, uma consulta ou 2, no máximo 3 ainda vá lá, mas 28 não tem o porque, além disto um RecordSet Local seria mais interessante, no exemplo que mencionei, abrindo até 3 consultas e depois fechando e destruindo, sem conexões paralelas ao BD.
[s50]
Vai por mim, terá uma boa dor de cabeça.
[s55]
Eu não entendi direito quando você diz "28 Objetos Data". Você quer dizer 28 DataCotrols no mesmo Form?
Se for, tem algo muito errado, uma consulta ou 2, no máximo 3 ainda vá lá, mas 28 não tem o porque, além disto um RecordSet Local seria mais interessante, no exemplo que mencionei, abrindo até 3 consultas e depois fechando e destruindo, sem conexões paralelas ao BD.
[s50]
Vai por mim, terá uma boa dor de cabeça.
[s55]
Tópico encerrado , respostas não são mais permitidas