USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Exportação de tabela para o excel
MARCONE
Pontos: 2843
BRASÍLIA
DF - BRASIL
ENUNCIADA !
Postada em 16/03/2005 10:49 hs            
Tenho um código para exportação de tabela do Access para o excel, utilizando o Objeto excel:
 
Option Explicit
Public oExcel As Object
Public objExlSht As Object
Public db As Database
Public Sn As Recordset   ' Recordset do tipo Snapshot
Public Vetor() As Variant
Public row As Long, col As Long
Public fd As Field
Public Type ExlCell
   row As Long
   col As Long
End Type
Public Sub CopiarTabelaExcel(rs As Recordset, ws As Worksheet, StartingCell As ExlCell)
rs.MoveMax
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.MoveMin
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
Public Sub ExportarExcellCmd()
On Error GoTo final
Dim stCell As ExlCell
frmExportar.MousePointer = 11 ' Muda o ponteiro do mouse
Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Add   'inclui o workbook
Set objExlSht = oExcel.ActiveWorkbook.Sheets(1)
'**************referencia da base de dados
Set db = OpenDatabase(App.Path & "BIBLIO.MDB")
Set Sn = db.OpenRecordset("Titles", dbOpenSnapshot)
'**************************************
' Inclui os dados a partir da celula A1
stCell.row = 1
stCell.col = 1
CopiarTabelaExcel Sn, objExlSht, stCell
'************** Salva a planilha
objExlSht.SaveAs App.Path & "     este1.xls"
'**************************************
oExcel.Visible = True
'frmExportar.Show
frmExportar.Label1.Caption = "Encerrando o Excel"
frmExportar.Label1.Refresh
objExlSht.Application.Quit
Set objExlSht = Nothing   ' remove a variavel objeto
Set oExcel = Nothing       ' remove a variavel objeto
Set Sn = Nothing             ' reomove a variavel objeto
Set db = Nothing             ' reomove a variavel objeto
frmExportar.MousePointer = vbDefault     ' Restaura o ponteiro do mouse.
frmExportar.Label1.Caption = "Muito bem, deu certo ! "
frmExportar.Label1.Refresh
MsgBox "Planilha exportada com sucesso!!", vbInformation, "Exportação!!"
Exit Sub
final:
MsgBox Err.Number & ": " & Err.Description, vbInformation, "Ocorreu um erro ao gerar a planilha excel!!"
End Sub
'--------------------------------------------------------------------
PROBLEMA: Apesar da exportação ser efetuada para a planilha do excel, os dados exportados perdem a formatação. Exemplo:
 
Na tabela do Access:
CodigoDocumento: "5.01"           (string)
CodigoContribuinte: "1.232.010" (string)
 
Depois de exportado (na planilha do excel):
CodigoDocumento: 5,01 (número)
CodigoContribuinte: 1,232010 (número)
 
Alguém sabe como resolver isso?
valeu!!

MarconeEmoções

 

   
Tbs
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 16/03/2005 15:04 hs            
Tente formatar as colunas assim:

Exemplo da propriedade NumberFormat

Estes exemplos definem o formato de número para a célula A17, linha um e coluna C (respectivamente) em Sheet1.

Worksheets("Sheet1").Range("A17").NumberFormat = "General"Worksheets("Sheet1").Rows(1).NumberFormat = "hh:mm:ss"Worksheets("Sheet1").Columns("C").NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Ou para tranferir sua tabela direta para o excel utilize este comando:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel7, "Tabela_teste"", NomeArquivo & ".xls", True
[]´s
Tbs
   
MARCONE
Pontos: 2843
BRASÍLIA
DF - BRASIL
ENUNCIADA !
Postada em 16/03/2005 20:21 hs            
Valeu pela dica, Tbs, mas...
 
A primeira dica funciona depois que os dados já tenham sido exportados, assim, perde-se a formatação inicial.
 
A segunda dica força a abertura do bd e faz a mesma coisa do código postado anteriormente (formata os dados indevidamente)..
 
Se alguém tiver mais alguma sugestão...

MarconeEmoções

 

   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página