EXPORTAR EXCEL
Galera, boa tarde!!!
Estou exportando dados de uma tabela access para excel, porém se a tabela contém por exemplo 20 registros, na exportação só exporta 19 registros. O ultimo nunca é exportado.
Veja a rotina abaixo e tentem me ajudar por favor!!!
Marcelino Neto
VB6.0
Access2000
Dao
Estou exportando dados de uma tabela access para excel, porém se a tabela contém por exemplo 20 registros, na exportação só exporta 19 registros. O ultimo nunca é exportado.
Veja a rotina abaixo e tentem me ajudar por favor!!!
Public Sub TblCadastroInss()
Dim stCell As ExlCell
Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Add 'inclui o workbook
Set objExlSht = oExcel.ActiveWorkbook.Sheets(1)
Dim Inss As Recordset
Caminho = ReadINI("Caminho", "BD", App.Path & "\CooperNet.ini")
Set CpnInfo = Workspaces(0).OpenDatabase(Caminho)
Set Inss = CpnInfo.OpenRecordset("TblCadastroInss", dbOpenSnapshot)
' Inclui os dados a partir da celula A1
stCell.row = 1
stCell.col = 1
CopiarTabelaExcel Inss, objExlSht, stCell
' Salva a planilha
objExlSht.SaveAs "C:\Backup\TblCadastroInss.xls"
oExcel.Visible = False
objExlSht.Application.Quit
Set objExlSht = Nothing ' remove a variavel objeto
Set oExcel = Nothing ' remove a variavel objeto
Set Inss = Nothing ' reomove a variavel objeto
Set CpnInfo = Nothing ' reomove a variavel objeto
End Sub
Private Sub CopiarTabelaExcel(rs As Recordset, WS As Worksheet, StartingCell As ExlCell)
Dim Vetor() As Variant
Dim row As Long, col As Long
Dim fd As Field
rs.MoveLast
ReDim Vetor(rs.RecordCount + 1, rs.Fields.Count)
' Copia as colunas do cabecalho para um vetor
col = 0
For Each fd In rs.Fields
Vetor(0, col) = fd.Name
col = col + 1
Next
' copia o rs par um vetor
rs.MoveFirst
For row = 1 To rs.RecordCount - 1
For col = 0 To rs.Fields.Count - 1
Vetor(row, col) = rs.Fields(col).Value
'O Excel não suporta valores NULL em uma célula.
If IsNull(Vetor(row, col)) Then Vetor(row, col) = ""
Next
rs.MoveNext
Next
WS.Range(WS.Cells(StartingCell.row, StartingCell.col), WS.Cells(StartingCell.row + rs.RecordCount + 1, _
StartingCell.col + rs.Fields.Count)).Value = Vetor
End Sub
Marcelino Neto
VB6.0
Access2000
Dao
Eu fiz uma exportação parecida com essa, o seu problema tá difÃÂÂcil de identificar, pois vc relaciona o nro da coluna com o nro de registros, talvez seja esse "- 1" que esteja ocasionado o problema do último registro, segue um pedaço da rotina que fiz, sem precisar relacionar essas propriedades:
z = 1
with rsDados
For a = 1 To .RecordCount
With Range("A" & z)
.FormulaR1C1 = "44" ' COD_CREDOR
End With
With Range("B" & z)
.FormulaR1C1 = rsMasterAnt!Nome ' NOME_DEV
End With
.MoveNext
z = z + 1
Next
End With
Z = nro da linha onde deve ser adicionada a informação
z = 1
with rsDados
For a = 1 To .RecordCount
With Range("A" & z)
.FormulaR1C1 = "44" ' COD_CREDOR
End With
With Range("B" & z)
.FormulaR1C1 = rsMasterAnt!Nome ' NOME_DEV
End With
.MoveNext
z = z + 1
Next
End With
Z = nro da linha onde deve ser adicionada a informação
Valeu, vou tentar adaptar!!!
Tópico encerrado , respostas não são mais permitidas