COMO FAZER UMA CONTAGEM DE PESSOAS NO BANCO?

LILOX 07/08/2012 12:59:52
#407396
Tenho uma aplicação de cadastro de membros e estou precisando ter uma contagem desses membros, pois quando eu for mandar imprimir a lista, preciso que apareça ao lado de cada membro um número que venha representar no final da lista, a quantidade de pessoas que tenho cadastrado.

Comecei utilizando CODIGO [Numeração Automática] no Access, porém o Banco não zera e se eu excluir algum membro, ele não inclui outro membro no mesmo número excluído.

Preciso de uma maneira que mesmo que eu exclua membros, a numeração sempre vai ser a contagem total de membros que tenho, independente de que número seja para determinado membro.

Podem me ajudar?
JABA 07/08/2012 13:15:11
#407398
use essa consulta:

SELECT COUNT(codigo) FROM TABELA

ou essa:

SELECT COUNT(*) FROM TABELA

e outra coisa: Ao invés de executar essa consulta com o DataReader utilize o ExecuteScalar e retorne o valor direto dele.

vlw
FILMAN 07/08/2012 13:18:02
#407399
Você pode usar o proprio RecordSet para isso

Ex.

rs.Open SELECT * FROM tbMembros, Conn

TotalMembros = CLng(rs.RecordCount)
LILOX 07/08/2012 13:34:19
#407402
Valeu Jaba!

Ainda não consegui terminar, mas vou conseguir usando o COUNT.
Para apresentar o CODIGO do membro eu estava usando esse código:

Private Function buscar_ultimocodigo() As Integer
[ô]criei um select para me retornar o maior codigo armazenado

sql = [Ô]select max(codigo) as Codigo from Membros[Ô]
[ô]criei meu objda com parametros sql e minha conexao
Dim objda As New OleDb.OleDbDataAdapter(sql, objbanco.objconexao)

objds.Tables.Clear()
[ô]meu objda configurado eu jogo dentro do meu objds
objda.Fill(objds)

[ô]aqui eu retorno uma tabela uma linha e um campo
Return objds.Tables(0).Rows(0).Item(0)

End Function

Porém eu apenas troquei o MAX pelo COUNT e ele retornou a quantidade de membros, mas ainda está salvando no Banco como CODIGO e numeração automática....vou ver o que preciso mudar, e verificar se quanto eu editar se ele não vai salvar como Novo e duplicar o Membro....mas desde já agradeço.

Ainda não vou finalizar e aguardar mais alguma sugestão, mas assim q fizer votarei.
LILOX 07/08/2012 13:40:47
#407404
Filma,
Não consegui usar o Rset
Estou criando em WindowsForm não sei se a nomenclatura seria diferente, pois quando coloco rs ele traduz para RSet() e não deixa eu colocar OPEN depois do [Ô]ponto[Ô].

Mesmo assim muito obrigado, por enquanto vou tentando implementar com o COUNT mesmo.
JABA 07/08/2012 14:01:56
#407411
A ideia para fazer isso é assim:

public retornarQuantidadeDePessoas() as integer
sql = [Ô]select count(codigo) as Codigo from Membros[Ô]
cnn = new SqlConnection(connetionString)
try
cnn.Open()
cmd = new SqlCommand(sql, cnn)
Return Convert.ToInt32(cmd.ExecuteScalar())
catch (ex as Exception)
MsgBox(ex.Message)
Finally
cmd.Dispose()
cnn.Close()
end try
end sub

Adapte para o teu uso e pontue-me se te ajudei.

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