GRAVANDO RESULTADOS DE UM RECORDSET EM UMA MATRIZ

USUARIO.EXCLUIDOS 13/08/2007 08:15:21
#230606
Olá gente!

Estou com uma dúvida e espero que me ajudem.

Alguém sabe armazenar os dados de um recordset ou uma tabela numa matriz bidimensional?

Obrigada!!!

Anni
USUARIO.EXCLUIDOS 13/08/2007 08:19:13
#230608
qual seria o conteudo do RecordSet?
USUARIO.EXCLUIDOS 13/08/2007 08:24:01
#230609
Uma tabela inteira, por exemplo.

rs.Open "Select * from Tabela order by codigo ", Banco, adOpenForwardOnly, adLockReadOnly
USUARIO.EXCLUIDOS 13/08/2007 08:24:45
#230610

Olha...pode parecer tonto...mas n entendo muito de matriz...por n usar..

poderia me dar um exemplo?
USUARIO.EXCLUIDOS 13/08/2007 08:44:05
#230611
Acho que consegui uma solução... estou aberta a sugestões.

Dim dbvetor1 As Variant
Dim caminhobanc1 as New ADODB.Recorset

caminhobanc1.Open "Select * from Tabela01 order by Field1", bancocaminho1, adOpenForwardOnly, adLockReadOnly

dbvetor1 = caminhobanc1.GetRows(caminhobanc1.RecordCount)

numero_de_colunas = UBound(dbvetor, 1)
numero_de_registros = UBound(dbvetor, 2)

Dim matrixbanco1() As Variant

ReDim matrixbanco1(numero_de_registros, numero_de_colunas)

For i = 0 To numero_de_registros
For j = 0 To numero_de_colunas
matrixbanco1(i, j) = linha & dbvetor1(j, i)
Next j
linha = ""
Next i

caminhobanco1.close
USUARIO.EXCLUIDOS 13/08/2007 09:18:36
#230613
ANNICAROL,

Creio que sua solução realmente seja bem apropriedada.

Mais eu, PARTICULARMENTE, prefiro as vezes utilizar "Types" para este tipo de matriz, mantem o código mais organizado e fácil de se entender.


Segue um exemplo de Type, adaptando a sua necessidade.

Em um módulo:
Type Teste
Campo1 As String
Campo2 As String
Campo3 As String
End Type



Adaptando sua Rotina:
Dim caminhobanc1 as New ADODB.Recorset

caminhobanc1.Open "Select * from Tabela01 order by Field1", bancocaminho1, adOpenForwardOnly, adLockReadOnly

Dim matrixbanco1() As Teste

ReDim matrixbanco1(caminhobanc1.RecordCount)

For i = 0 To caminhobanc1.RecordCount
matrixbanco1.Campo1 = caminhobanc1("Campo1")
matrixbanco1.Campo2 = caminhobanc1("Campo2")
matrixbanco1.Campo3 = caminhobanc1("Campo3")
Next i

caminhobanco1.close

USUARIO.EXCLUIDOS 13/08/2007 09:25:06
#230616
Obrigada pela dica Marcelo, vou tentar implementá-la aqui!

Valeu!

[]'s
USUARIO.EXCLUIDOS 13/08/2007 09:31:23
#230618
Qualquer coisa, posta aí...

Agente vê o que consegue fazer.
Tópico encerrado , respostas não são mais permitidas