PREENCHENDO LACUNAS

IRENKO 15/12/2006 15:52:37
#190243
Com o codigo abaixo preencho um List com todos os dados da tabela (Dados) campo LM_1. Esses dados correspondem a numeração de um certo documento. Preciso gerar em outro list os numeros que faltam no primeiro List partindo do número 1000 ate o ultimo, é possível?


Segue a tabela anexo.

Private Sub CmdLmSaldo_Click()
Frm_SaldoLM.Visible = True
Frm_SaldoLM.Left = 6
Frm_SaldoLM.Top = 84
GoTo Lista

Lista:
AtivarBancoLM
Dim Sql As String
Dim Contador As Integer
LM_1 ORDER BY LM_1"
Sql = "SELECT distinct [LM_1] FROM Dados GROUP BY LM_1 ORDER BY LM_1"
Set Tabela_LM = Banco_LM.Execute(Sql)


If Tabela_LM.RecordCount = 0 Then
ListLMSaldo.Clear

Else
ListLMSaldo.Clear

Dim i, J
i = 0
J = 1

Do Until Tabela_LM.EOF
ListLMSaldo.AddItem Tabela_LM("LM_1")
i = i + 1
Contador = Contador + 1
Tabela_LM.MoveNext
Loop
End If
LB_Nr.Caption = Contador & " " & " " & "-" & " " & "LM's pendentes"
DisconectarSaldo
End Sub

GIOVANI.ARRUDA 15/12/2006 17:11:29
#190261
Cara isso de passar dados de uma lista para outra é facil mas eu não entendi exatamente essa parte: "numeros que faltam no primeiro List partindo do número 1000 ate o ultimo"
GIOVANI.ARRUDA 15/12/2006 17:13:35
#190263
por que o teu select só não permite duplicar os registros ou tu não que duplicar registros no primeiro list e depois colocar no segundo os que foram restritos no primeiro?? é isso??
IRENKO 15/12/2006 17:44:12
#190272
Seguinte, tenho abaixo o exemplo:

1
2
4
6
7
8
10
12

gostaria de gerar os numeros faltantes na lista acima, ou seja:

3
5
9
11


IRENKO 16/12/2006 09:16:32
#190350
Peguei essa resposta em outro forum, so que não entendi, alguem pode me explicar melhor?

primeiro vc ÂÂÂ'pega o número do ultimo registro LM... (por ex suponha q seja 2300..)
depois vc faz um contador iniciando em 1000 ...
cria um variavel lista1 as variant
agora o cod
...
j=0
for i =1000 to N (para o exemplo N seria 2300)
'Aki vc faz um select para ver se o registro "i" existe na sua tabela
'Se não existir
j=j+1
redim preserve lista1 (j)
lista1(j)=i
se existir
next i
USUARIO.EXCLUIDOS 16/12/2006 10:22:49
#190357
Resposta escolhida
Cara, não li todo tópico, mas se tem no List1 determinados valores e quer passar o que falta pro List2, tente:

Dim i As Integer, Ult As Integer, x As Integer
Ult = List1.List(0)
For i = 1 To List1.ListCount - 1
If List1.List(i) <> Ult + 1 Then
For x = Ult + 1 To List1.List(i) - 1
List2.AddItem x
Next x
End If
Ult = List1.List(i)
Next i


Qualquer dúvida poste...flw
IRENKO 16/12/2006 10:57:31
#190361
deu erro nessa linha:

Ult = List1.List(0)

(Não foi possível obter a prpriedade List. àndice de matriz de propriedade invalida)


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