CONTAR SEM REPETICOES
se não funcionar tente esta alteração
Private Sub numerodepessoas()
Dim ws As DAO.Workspace
Dim Db As DAO.Database
Dim StrSql As String
Dim Rs As DAO.Recordset
Set ws = DBEngine.Workspaces(0)
Set Db = ws.OpenDatabase(CurrentProject.Path & [Ô] este.accdb[Ô], False, False, [Ô]MS Access;PWD=senha[Ô])
StrSql = [Ô]SELECT Count(Distinct (numero)) as total1 FROM teste Group By tarefas[Ô]
Set Rs = Db.OpenRecordset(StrSql)
Do While Not Rs.EOF
List1.AddItem Rs.Fields([Ô]projeto[Ô]) & [Ô]:[Ô] & Rs.Fields([Ô]tarefas[Ô]) & [Ô] = [Ô] & Rs.Fields([Ô]total1[Ô])
Rs.MoveNext
Loop
End Sub
Na linha
Set Rs = Db.OpenRecordset(StrSql)
Da-me este erro:
A função distint não está defenida na função
Set Rs = Db.OpenRecordset(StrSql)
Da-me este erro:
A função distint não está defenida na função
outro teste
StrSql = [Ô]SELECT Distinct(numero), Count(numero) as total1 FROM teste Group By tarefas[Ô]
StrSql = [Ô]SELECT Distinct(numero), Count(numero) as total1 FROM teste Group By tarefas[Ô]
estudando um pouco mais o caso descobri que count com distinct é uma limitação do ACCESS porém existe outra alternativa que seria mais ou menos assim
StrSql = [Ô]SELECT Count(numero) as total1 FROM (SELECT DISTINCT numero FROM teste Group By tarefas)[Ô]
Tente isso:
StrSql = [Ô]SELECT Count(Codigo) AS TOTAL, Codigo AS Numero FROM Teste Group By Codigo;[Ô]
Fiz um teste aqui e funcionou.
Fica assim usando ADO:
Private Sub numerodepessoas()
Dim Busca As Recordset
Dim StrSql As String
Set Busca = New ADODB.Recordset
StrSql = [Ô]SELECT Count(Codigo) AS Total, Codigo as Numero FROM Pessoas Group By Codigo;[Ô]
Busca.Open StrSql, Conexao, adOpenKeyset, adLockPessimistic
Do While Not Busca.EOF
List1.AddItem BuscaReq.Fields([Ô]Numero[Ô]) & [Ô] = [Ô] & Busca.Fields([Ô]Total[Ô])
Busca.MoveNext
Loop
End Sub
StrSql = [Ô]SELECT Count(Codigo) AS TOTAL, Codigo AS Numero FROM Teste Group By Codigo;[Ô]
Fiz um teste aqui e funcionou.
Fica assim usando ADO:
Private Sub numerodepessoas()
Dim Busca As Recordset
Dim StrSql As String
Set Busca = New ADODB.Recordset
StrSql = [Ô]SELECT Count(Codigo) AS Total, Codigo as Numero FROM Pessoas Group By Codigo;[Ô]
Busca.Open StrSql, Conexao, adOpenKeyset, adLockPessimistic
Do While Not Busca.EOF
List1.AddItem BuscaReq.Fields([Ô]Numero[Ô]) & [Ô] = [Ô] & Busca.Fields([Ô]Total[Ô])
Busca.MoveNext
Loop
End Sub
Tópico encerrado , respostas não são mais permitidas