LISTCOUNT - CONTAR QUANTOS ITEMS DO TIPO X EXISTEM
Viva pessoal,
Tenho uma dúvida (para já): tenho uma listbox onde são adicionados aleatóriamente vários numeros de 0 a 200. A quantidade de items também varia, tanto são adicionados 1 item como 500 items ou mais. Exemplo:
23
45
120
45
23
45
Depois de serem adicionados esses items, eu precisava de criar uma label por cada numero da lista e outra label a indicar o numero de vezes que se repete esse numero, exemplo:
23 - 2
45 - 3
120 - 1
Não me parece complicado, mas tou bloqueado neste problema...alguém me pode ajudar....tanto na contagem dos items como na criação das labels.
Muito obrigado
Tenho uma dúvida (para já): tenho uma listbox onde são adicionados aleatóriamente vários numeros de 0 a 200. A quantidade de items também varia, tanto são adicionados 1 item como 500 items ou mais. Exemplo:
23
45
120
45
23
45
Depois de serem adicionados esses items, eu precisava de criar uma label por cada numero da lista e outra label a indicar o numero de vezes que se repete esse numero, exemplo:
23 - 2
45 - 3
120 - 1
Não me parece complicado, mas tou bloqueado neste problema...alguém me pode ajudar....tanto na contagem dos items como na criação das labels.
Muito obrigado
Miguel Angelo
Por que adiciona na ListBox se pretende DEPOIS realizar um levantamento?
Eu acredito que o melhor seria adicionar a uma matriz de 2 dimensões, assim você só adicionaria os itens já cadastrados, do contrário não vejo motivo para um ListBox ter itens repetidos.
Se você puder exemplificar e descrever a aplicação ajudará e muito.
[s50]
Por que adiciona na ListBox se pretende DEPOIS realizar um levantamento?
Eu acredito que o melhor seria adicionar a uma matriz de 2 dimensões, assim você só adicionaria os itens já cadastrados, do contrário não vejo motivo para um ListBox ter itens repetidos.
Se você puder exemplificar e descrever a aplicação ajudará e muito.
[s50]
Miguel Angelo
Veja bem, tem como resolver de 2 maneiras (na minha ótica) mas seria interessante você postar o que necessita, se precisa ou não de cada Ãtem ou seja se foram 500 ocorrências (ou registros) sorteados, você necessita pontualmente de cada registro ou só a incidência dos valores?
Por exemplo, você só necessita saber que 51 ocorreu 14 vezes, 01 ocorreu 5 vezes, 9 nenhuma vez, ou precisa saber que 51 ocorreu nas tentativas 8Âê 37Âê 103Âê .......
Definindo isto pode-se traçar se é necessário ou não um Banco de Dados.
[s50]
Veja bem, tem como resolver de 2 maneiras (na minha ótica) mas seria interessante você postar o que necessita, se precisa ou não de cada Ãtem ou seja se foram 500 ocorrências (ou registros) sorteados, você necessita pontualmente de cada registro ou só a incidência dos valores?
Por exemplo, você só necessita saber que 51 ocorreu 14 vezes, 01 ocorreu 5 vezes, 9 nenhuma vez, ou precisa saber que 51 ocorreu nas tentativas 8Âê 37Âê 103Âê .......
Definindo isto pode-se traçar se é necessário ou não um Banco de Dados.
[s50]
Miguel Angelo
Utilizei uma solução parecida com a que postei para o link abaixo:
ORDENAR CLUBES DE FUTEBOL POR PONTOS/SALDO
Você precisará referenciar o ADO 2.8 Library, um CommandButton e um MSHFlexGrid
Aqui nos testes funcionou, pode utilizar qualquer outro mecanismo para obter o Randà 'mico, mas a idéia é esta.
Teste e veja se funciona corretamente
[s50]
Utilizei uma solução parecida com a que postei para o link abaixo:
ORDENAR CLUBES DE FUTEBOL POR PONTOS/SALDO
Você precisará referenciar o ADO 2.8 Library, um CommandButton e um MSHFlexGrid
Private Sub Command1_Click()
ContaOcorrencia 300
End Sub
Public Sub ContaOcorrencia(iVezes As Integer)
Dim i As Integer, rsBusca As Integer, nSorteado As Integer
Dim rsDesconectado As ADODB.Recordset
Set rsDesconectado = New ADODB.Recordset
rsDesconectado.Fields.Append "Ocorrencia", adChar, 20
rsDesconectado.Fields.Append "Vezes", adInteger
rsDesconectado.ActiveConnection = Nothing
rsDesconectado.CursorLocation = adUseClient
rsDesconectado.Open
'----- Inicio o RecordSet com o TOTAL de vezes -----
For i = 0 To iVezes - 1
rsDesconectado.AddNew
rsDesconectado("Ocorrencia").Value = i
rsDesconectado("Vezes").Value = 0
Next
rsDesconectado.MoveFirst
'-------- Gera os números "aleatoriamente" ---------
For i = 0 To iVezes - 1
nSorteado = Int(Rnd(Timer) * iVezes)
rsDesconectado.Find "Ocorrencia = " & nSorteado
rsDesconectado("Vezes").Value = rsDesconectado("Vezes").Value + 1
rsDesconectado.MoveFirst
Next
rsDesconectado.Sort = ("Vezes desc,Ocorrencia desc")
Set MSHFlexGrid1.DataSource = rsDesconectado
rsDesconectado.Close
Set rsDesconectado = Nothing
End Sub
Aqui nos testes funcionou, pode utilizar qualquer outro mecanismo para obter o Randà 'mico, mas a idéia é esta.
Teste e veja se funciona corretamente
[s50]
Tópico encerrado , respostas não são mais permitidas