CONTAR SEM REPETICOES
Boas
Estou a tentar contar o numero de funcionário que estiveram a trabalhar numa determinada maquina e a fazer um Distinct sobre eles! Pois quero o total de funcionários que tiveram a trabalhar mas sem repetições!
Dai estar a tentar juntar o distinct e o count! Mas não esta a dar lá muito resultado!
Como fazo para contar o números de pessoas mas sem contar a mesma pessoa duas vezes.
Código:
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 Distinct (numero) as total1 FROM teste WHERE projecto = [ô][Ô] & Me.txtID & [Ô][ô] And tarefa = [Ô] & CInt(Me.Text54)
Set Rs = Db.OpenRecordset(StrSql)
Rs.MoveFirst
Do
CurrentDb.Execute [Ô]UPDATE Horas SET numerodepessoas=[ô][Ô] & Rs.Fields([Ô]total1[Ô]) & [Ô][ô] WHERE projecto =[ô][Ô] & Me.txtID & [Ô][ô] And tarefa=[Ô] & Me.Text54 & [Ô];[Ô]
Rs.MoveNext
Loop
End Sub
/////////////////////////////////////////////
Private Sub Horas()
On Error GoTo TrataErro
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim ws As DAO.Workspace
Dim StrSql As String
Dim StrNumFunc As String
Dim inti As Integer
Set ws = DBEngine.Workspaces(0)
Set Db = ws.OpenDatabase(CurrentProject.Path & [Ô] este.accdb[Ô], False, False, [Ô]MS Access;PWD=senha[Ô])
StrSql = [Ô]SELECT * FROM Horas[Ô]
Set Rs = Db.OpenRecordset(StrSql)
StrNumFunc = DCount([Ô]*[Ô], [Ô][Horas][Ô])
inti = 0
fInLoop = True
fExitLoop = False
Do Until inti >= StrNumFunc Or fExitLoop
DoEvents
inti = inti + 1
Me.txtInti = inti
Me.txtID = Rs!projecto
Me.Text54 = Rs!tarefa
Rs.MoveNext
Call numerodepessoas
Loop
fInLoop = False
Exit Sub
TrataErro:
If Err.Number = 2220 Then
MsgBox [Ô]XXXXX[Ô]
Else
Resume Next
End If
End Sub
Estou a tentar contar o numero de funcionário que estiveram a trabalhar numa determinada maquina e a fazer um Distinct sobre eles! Pois quero o total de funcionários que tiveram a trabalhar mas sem repetições!
Dai estar a tentar juntar o distinct e o count! Mas não esta a dar lá muito resultado!
Como fazo para contar o números de pessoas mas sem contar a mesma pessoa duas vezes.
Código:
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 Distinct (numero) as total1 FROM teste WHERE projecto = [ô][Ô] & Me.txtID & [Ô][ô] And tarefa = [Ô] & CInt(Me.Text54)
Set Rs = Db.OpenRecordset(StrSql)
Rs.MoveFirst
Do
CurrentDb.Execute [Ô]UPDATE Horas SET numerodepessoas=[ô][Ô] & Rs.Fields([Ô]total1[Ô]) & [Ô][ô] WHERE projecto =[ô][Ô] & Me.txtID & [Ô][ô] And tarefa=[Ô] & Me.Text54 & [Ô];[Ô]
Rs.MoveNext
Loop
End Sub
/////////////////////////////////////////////
Private Sub Horas()
On Error GoTo TrataErro
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim ws As DAO.Workspace
Dim StrSql As String
Dim StrNumFunc As String
Dim inti As Integer
Set ws = DBEngine.Workspaces(0)
Set Db = ws.OpenDatabase(CurrentProject.Path & [Ô] este.accdb[Ô], False, False, [Ô]MS Access;PWD=senha[Ô])
StrSql = [Ô]SELECT * FROM Horas[Ô]
Set Rs = Db.OpenRecordset(StrSql)
StrNumFunc = DCount([Ô]*[Ô], [Ô][Horas][Ô])
inti = 0
fInLoop = True
fExitLoop = False
Do Until inti >= StrNumFunc Or fExitLoop
DoEvents
inti = inti + 1
Me.txtInti = inti
Me.txtID = Rs!projecto
Me.Text54 = Rs!tarefa
Rs.MoveNext
Call numerodepessoas
Loop
fInLoop = False
Exit Sub
TrataErro:
If Err.Number = 2220 Then
MsgBox [Ô]XXXXX[Ô]
Else
Resume Next
End If
End Sub
Eu posso estar errado e aparecer alguem aqui e matar isso a pau, (o que nao sera eu por se tratar de vb6) mas acredito que voce ira precisar postar a estrutura da sua tabela para o pessoal saber certinho do que estafalando, ja que essa rotina se trata de codigo+Banco..
Abraços
Abraços
Este código está no vb de um banco do access...
E esse tópico aqui, o que a gente faz com ele?
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=385834&varWorld=
por favor leia as regras, vc abriu dois tópicos com a mesma duvida
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=385834&varWorld=
por favor leia as regras, vc abriu dois tópicos com a mesma duvida
Por favor obedeça as regras de uso abaixo para que o Fórum não fique congestionado, e todos possam utilizar o Fórum da melhor maneira possÃvel, evitando sobrecarga do servidor em tráfego e do banco de dados em número de registros.
Regras de conduta
Postagem duplicada
Não poste tópicos repetidos no Fórum só para eles aparecerem no começo da lista, pelo contrário, aguarde, pois sempre haverá como ajudá-lo.
Você já possui um tópico com a mesma dúvida, onde foram postadas sugestões e você não deu retorno.
CONTAR SEM REPETICOES
Regras de conduta
Não poste tópicos repetidos no Fórum só para eles aparecerem no começo da lista, pelo contrário, aguarde, pois sempre haverá como ajudá-lo.
Você já possui um tópico com a mesma dúvida, onde foram postadas sugestões e você não deu retorno.
CONTAR SEM REPETICOES
Tópico encerrado , respostas não são mais permitidas