ARRAY DINAMICO

SOARESDIVIS 01/05/2012 00:25:22
#401102
While cont > 0
unico = arrayClientes(cont) [ô] ERRO AQUI Subscrito fora do intervalo, Erro de execução 9
quant = contUnico
FILMAN 01/05/2012 00:29:21
#401103
Coloque esse aqui no lugar

cont = -1
rs.Open [Ô]SELECT idCliente FROM pedidos[Ô], cn, adOpenStatic, adLockReadOnly
While not rs.EOF
cont = cont + 1
ReDim Preserve arrayClientes(cont)
arrayClientes(cont) = rs!idCliente
rs.MoveNext
Wend


O que acontece é que a variavel cont ao finalizar tem um valor maior do que o indice correto então inicia a mesma com -1

isso se chama gambiarras
SOARESDIVIS 01/05/2012 12:46:30
#401117
Valeu mesmo... deu certo, mais abaixo tive problemas em usar novamente uma array dinâmica para pegar o retorno desta arrayCliente que você me ajudou, porém, observei que esta array nova não precisa ser dinâmica, pois o número de clientes estará no máximo em 500, assim defini uma array statica para receber os idClientes não repetidos e deu certo, retornou apenas os idClientes não repetidos vindos do arrayClientes que vocÊ me ajudou a criar.
Obrigado mesmo.

Abusando de sua boa vontade, estou tendo problemas na busca sql da maior data de pedido dos clientes que busquei já limpos dos repetidos, estou usando esta query abaixo:

While contUnico > 0
Plan27.Cells(linha, 1) = arrayUnico(contUnico)
idCliente = arrayUnico(contUnico)
rs.Close
rs.Open [Ô]SELECT max(dataPedido) FROM pedidos WHERE idCliente = [Ô] & idCliente, cn, adOpenDynamic, adLockOptimistic
Plan27.Cells(linha, 3) = rs([Ô]dataPedido[Ô])
contUnico = contUnico - 1
linha = linha + 1
Wend

A mensagem de erro que vem é: 3265, ou seja: O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.
Será que você pode me ajudar nisso também ?
Desde muitíssimo obrigado.

FILMAN 01/05/2012 15:41:49
#401125
Cara se me recordo esse erro equivale a informação de que o campo especifico na tabela não existe verifique se o campo dataPedido esta realmente
com essa descrição ou é diferente.
KERPLUNK 02/05/2012 08:55:14
#401167
Não use array, use List:
Dim x as List(Of Long)

E então:
x.Add(3)
x.Add(9) e assim por diante.
SOARESDIVIS 02/05/2012 10:08:10
#401171
Sim o campo dataPedido existe, na verdade não sei o que aconteceu, mas agora não dá tempo de procurar, apenas consegui resolver fazendo :
rs.Open [Ô]SELECT dataPedido,idEmpresa FROM pedidos WHERE idCliente = [Ô] & idCliente & [Ô] ORDER By dataPedido DESC[Ô], cn, adOpenDynamic, adLockOptimistic
Plan27.Cells(inicioLinha, 3) = rs([Ô]dataPedido[Ô])
idEmpresa = rs([Ô]idEmpresa[Ô])

Ai já peguei outro dado também, assim, selecionei a primeira data ordenada como o DESC e pronto, rsrs, acho que foi uma gambiarra, rsrs, mas funciona muito bem.

Cara, muito obrigado mesmo !!
Se precisar de novo vou ter que te pedir novamente ajuda, mas por hora tenho muito trabalho ha fazer carregando o banco e utilizando o sistema, que na verdade ficou bem completo, aliás, ficou show de bola porque criei um botão onde eu exporto uma planilha para o ipad contendo as informações dos produtos que o cliente trabalha, estoque padrão que ele utiliza de cada produto, foto dos produtos que ele já compra, tudo já preparado em uma planilha no formato de um pedido, onde na loja dele eu conto o estoque dele na prateleira e em reunião com o cliente, apresento as quantidades e fotos e já tiro o pedido nesta mesma planilha, ai chego em casa e plugo o ipad no micro e transfiro em um outro botão todas as planilhas e estas já vão sendo montadas em um pedido original com o logo de cada empresa que represento com os produtos pedidos pelos clientes e já salva na pasta certa de cada empresa representada, ai é só eu abrir meu e-mail e enviar o pedido. Ficou super funcional.
Eu trabalho com representação comercial, represento 4 empresas, meus clientes são estas lojas de plantas que por ai, todas em SP.
logo logo vou escrever um código para com um click em outro botão já envie o pedido por e-mail de dentro do meu próprio programa, através do outlook, mas por enquanto vou trabalhando assim ...
Fiz tudo isso sozinho, o único que me ajudou foi você agora com estas dicas, isso tudo que fiz foi para honra e glória do Senhor Jesus, pois eu não sou programador, apenas em 2001 fiz 3 anos de ciência da computação e de lá para cá não mexi mais com isso, mas precisei pois, um ex- amigo meu me convenceu que se eu comprasse esse ipad ele me faria um programa completo em jquery, java, etc, mas na verdade ele não era meu amigo, ele até começou mas depois disse pra mim desistir e vender o ipad, sei lá o que aconteceu na cabeça dele, só sei que tive me virar para adaptar um programa para o ipad, e cara, é bem chato mexer com isso, pois o ipad é super limitado, enfim, Deus me ajudou muito mesmo, e por Ele eu consegui, agora é só trabalhar, então meu amigo, não sei de você, mas pode ter certeza que Ele te conhece e está contigo em tudo esperando por você, esperando você permitir Ele operar maravilhas em sua vida. Abração meu irmão.
Deus te ilumine ainda mais em seus projetos e trabalho, e saiba que com
FILMAN 02/05/2012 10:48:42
#401173
é isso ai cara


espero ter ajudado
FILMAN 09/05/2012 19:43:50
#401704
Favor encerrar o tópico se duvida foi solucionada


Obrigado
Página 2 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas