EXPORTANDO PARA EXCEL

USUARIO.EXCLUIDOS 02/06/2007 11:18:04
#219458
Bom dia!!!
Pessoal, a rotina abaixo exporta os dados de uma tabela access para o excel, a rotina funciona perfeita. Porém na tabela existe alguns campos que são datas, preciso acescentar na rotina um meio de formatar as datas para dd/mm/yyyy pois quando faço tal exportação a data de tais campos sai assim: mm/dd/yyyy

Veja a rotina:

Dim stCell As ExlCell
Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Add 'inclui o workbook
Set objExlSht = oExcel.ActiveWorkbook.Sheets(1)

Dim CIP As Recordset
Caminho = ReadINI("Caminho", "BD", App.Path & "\CooperNet.ini")
Set CpnInfo = Workspaces(0).OpenDatabase(Caminho)
Set CIP = CpnInfo.OpenRecordset("TblCadastroImpRenda", dbOpenSnapshot)

' Inclui os dados a partir da celula A1
stCell.row = 1
stCell.col = 1
CopiarTabelaExcel CIP, objExlSht, stCell

' Salva a planilha
objExlSht.SaveAs "C:\Backup\TblCadastroImpRenda.xls"

oExcel.Visible = False
objExlSht.Application.Quit

Set objExlSht = Nothing ' remove a variavel objeto
Set oExcel = Nothing ' remove a variavel objeto
Set CIP = Nothing ' reomove a variavel objeto
Set CpnInfo = Nothing ' reomove a variavel objeto

Ou se tiverem uma outra rotina para me ajudar, agradeço!!!

Marcelino Neto
VB6.0
Access2000
Dao
LUIS.FLAVIO 02/06/2007 11:24:35
#219459
Resposta escolhida
Cadê a rotina de exportação CopiarTabelaExcel CIP, objExlSht, stCell
USUARIO.EXCLUIDOS 02/06/2007 11:31:56
#219460
Segue a Rotina

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

LUIS.FLAVIO 02/06/2007 12:01:04
#219463
Uma possibilidade seria depois que vc fazer a rotina de exposrtação você mandar selecionar a coluna onde estão as datas e formatar conforme o seu critério.
USUARIO.EXCLUIDOS 02/06/2007 12:07:47
#219464
Consegue me dar um exemplo!!!
Tópico encerrado , respostas não são mais permitidas