Inquiridor
RecordCount = tipos incompatíveis

Pergunta
-
Pessoal, estou com um problema. Estou tentando utilizar o RecordSet, mas está retornando erro de tipos incompatíveis no meu RecordCount. Onde será que estou errando?? =/
Set cn = New ADODB.Connection
cn.ConnectionString = "DADOS DE CONEXÃO"
cn.Open
'define um novo objeto recordset
Set rs = New ADODB.Recordset
sql = "SELECT * FROM " & txt_tb
'gera o recordset para o sql sobre a conexao definida
rs.Open sql, cn
'define o cabeçalho das células no excel
'Range("A1").Value = "Codigo do Cliente"
'Range("B1").Value = "Quantidade Total"
'Range("C1").Value = "Valor total dos Pedidos"
'Definições RS
rs.MoveFirst
qtdeCol = rs.Fields.Count
qtdeLin = rs.RecordCount
i = 0
Do While i > qtdeLin
Do While i > qtdeCol
qtdeCol = qtdeCol + 1
Loop
qtdeLin = qtdeLin + 1
Loop
i = 2
If Not rs.EOF Then
Do While Not rs.EOF
ActiveSheet.Cells(l, c).Value = rs.Fields(c).Value
'Range("A" & i).Value = rs(0)
'Range("B" & i).Value = rs(1)
'Range("C" & i).Value = rs(2)
'Range("D" & i).Value = rs(3)
'Range("E" & i).Value = rs(4)
rs.MoveNext
i = i + 1
Loop
End If
cn.Close
End Sub
Todas as Respostas
-
Qual versao do Excel voce esta usando? Existia um bug em versoes antigas que para resolver voce tinha que aplicar um hotfix, mas poderia usar essa soluçao de contorno tambem:
rst = SomeRecordset dim rstCount as Long rstCount = CLng(rst.RecordCount)
Aqui esta a página do hotfix:
William John Adam Trindade
Analyste-programmeur
Sogi Informatique ltée
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".- Sugerido como Resposta Juliano Nunes Silva Oliveira quarta-feira, 7 de março de 2018 22:00
-
-
Transfira os dados do seu recordset para uma array.
dados = rs.getRows
Agora você pode utilizar as propriedade ubound(dados) e ubound(dados,2)
O ideal seria evitar o loop para não perder o desempenho do código.
dados = Application.Transpose(dados)
range("A1").resize(ubound(dados),ubound(dados,2)).value = dados