Amigos,
Estou tentando transferir os dados de uma tabela no access para o Excel, mas os campos que são numéricos e data, quando transferidos para a planilha, ficam no formato "geral" apesar de estarem com o formato correto na tabela. Destaquei as linhas em negrito. Tentei usar o Cdate e Cint, mas mesmo assim não tive sucesso. Agradeço se alguém ajudar. Segue o código:
Obs.: a planilha tem um cabeçalho com os títulos dos campos.
Private Sub Comando576_DblClick(Cancel As Integer)
Dim db As DAO.Database
Dim strTabela As String
Dim strSQL As String
Dim bdExcel As DAO.Database
Dim rs As DAO.Recordset
Dim numreg As Long
Dim nContador As Long
Dim vQTDE_CAIXA As Integer
'Passa o local e nome do arquivo para a variável
strArquivo = Path()
'Abre arquivo
Set bdExcel = OpenDatabase(strArquivo, False, False, "Excel 12.0;HDR=Yes;IMEX=0;")
'Monta a consulta do Recordset
strSQL = "SELECT * FROM [AQUISIÇÕES$]"
'Abre o Recordset da consulta
Set rs = bdExcel.OpenRecordset(strSQL)
Set db = CurrentDb()
Set TBNF = db.OpenRecordset("SELECT TB_NotaFiscal.DT_NF, TB_NotaFiscal.EAN, TB_NotaFiscal.QTDE_CAIXA, TB_NotaFiscal.NU_NF, TB_NotaFiscal.FORNECEDOR, TB_NotaFiscal.[ANÁLISE DA NF], TB_NotaFiscal.[MOTIVO DA DESCONSIDERAÇÃO], TB_NotaFiscal.MEDICAMENTO, TB_NotaFiscal.NF_CHAVE, TB_NotaFiscal.CNPJ_FORNECEDOR, TB_NotaFiscal.ITEM_NF, TB_NotaFiscal.Data_de_validade, TB_NotaFiscal.Fase_NF, TB_NotaFiscal.DT_IMPORTAÇÃO FROM TB_NotaFiscal;")
TBNF.MoveLast
numreg = TBNF.RecordCount
If numreg <> 0 Then
TBNF.MoveFirst
End If
For nContador = 1 To numreg
'Adiciona novo produto à lista
rs.AddNew
rs!DT_NF = CDate(TBNF!DT_NF)
rs!EAN = TBNF!EAN
vQTDE_CAIXA = CInt(TBNF!QTDE_CAIXA)
rs!QTDE_CAIXA = vQTDE_CAIXA
rs!NU_NF = TBNF!NU_NF
rs!FORNECEDOR = TBNF!FORNECEDOR
rs![ANÁLISE DA NF] = TBNF![ANÁLISE DA NF]
rs![MOTIVO DA DESCONSIDERAÇÃO] = TBNF![MOTIVO DA DESCONSIDERAÇÃO]
rs![MEDICAMENTO] = TBNF![MEDICAMENTO]
rs!NF_CHAVE = TBNF!NF_CHAVE
rs!CNPJ_FORNECEDOR = TBNF!CNPJ_FORNECEDOR
rs!ITEM_NF = TBNF!ITEM_NF
If IsNull(TBNF!Data_de_validade) = False Then
rs!Data_de_validade = CDate(TBNF!Data_de_validade)
End If
rs!Fase_NF = TBNF!Fase_NF
rs!DT_IMPORTAÇÃO = CDate(TBNF!DT_IMPORTAÇÃO)
rs.Update
TBNF.MoveNext
Next
'fecha o Recordset
rs.Close
Set rs = Nothing
'Fecha o arquivo Excel
bdExcel.Close
Set bdExcel = Nothing
MsgBox "A planilha foi atualizada...", vbInformation, "Aviso"
End Sub
Estou tentando transferir os dados de uma tabela no access para o Excel, mas os campos que são numéricos e data, quando transferidos para a planilha, ficam no formato "geral" apesar de estarem com o formato correto na tabela. Destaquei as linhas em negrito. Tentei usar o Cdate e Cint, mas mesmo assim não tive sucesso. Agradeço se alguém ajudar. Segue o código:
Obs.: a planilha tem um cabeçalho com os títulos dos campos.
Private Sub Comando576_DblClick(Cancel As Integer)
Dim db As DAO.Database
Dim strTabela As String
Dim strSQL As String
Dim bdExcel As DAO.Database
Dim rs As DAO.Recordset
Dim numreg As Long
Dim nContador As Long
Dim vQTDE_CAIXA As Integer
'Passa o local e nome do arquivo para a variável
strArquivo = Path()
'Abre arquivo
Set bdExcel = OpenDatabase(strArquivo, False, False, "Excel 12.0;HDR=Yes;IMEX=0;")
'Monta a consulta do Recordset
strSQL = "SELECT * FROM [AQUISIÇÕES$]"
'Abre o Recordset da consulta
Set rs = bdExcel.OpenRecordset(strSQL)
Set db = CurrentDb()
Set TBNF = db.OpenRecordset("SELECT TB_NotaFiscal.DT_NF, TB_NotaFiscal.EAN, TB_NotaFiscal.QTDE_CAIXA, TB_NotaFiscal.NU_NF, TB_NotaFiscal.FORNECEDOR, TB_NotaFiscal.[ANÁLISE DA NF], TB_NotaFiscal.[MOTIVO DA DESCONSIDERAÇÃO], TB_NotaFiscal.MEDICAMENTO, TB_NotaFiscal.NF_CHAVE, TB_NotaFiscal.CNPJ_FORNECEDOR, TB_NotaFiscal.ITEM_NF, TB_NotaFiscal.Data_de_validade, TB_NotaFiscal.Fase_NF, TB_NotaFiscal.DT_IMPORTAÇÃO FROM TB_NotaFiscal;")
TBNF.MoveLast
numreg = TBNF.RecordCount
If numreg <> 0 Then
TBNF.MoveFirst
End If
For nContador = 1 To numreg
'Adiciona novo produto à lista
rs.AddNew
rs!DT_NF = CDate(TBNF!DT_NF)
rs!EAN = TBNF!EAN
vQTDE_CAIXA = CInt(TBNF!QTDE_CAIXA)
rs!QTDE_CAIXA = vQTDE_CAIXA
rs!NU_NF = TBNF!NU_NF
rs!FORNECEDOR = TBNF!FORNECEDOR
rs![ANÁLISE DA NF] = TBNF![ANÁLISE DA NF]
rs![MOTIVO DA DESCONSIDERAÇÃO] = TBNF![MOTIVO DA DESCONSIDERAÇÃO]
rs![MEDICAMENTO] = TBNF![MEDICAMENTO]
rs!NF_CHAVE = TBNF!NF_CHAVE
rs!CNPJ_FORNECEDOR = TBNF!CNPJ_FORNECEDOR
rs!ITEM_NF = TBNF!ITEM_NF
If IsNull(TBNF!Data_de_validade) = False Then
rs!Data_de_validade = CDate(TBNF!Data_de_validade)
End If
rs!Fase_NF = TBNF!Fase_NF
rs!DT_IMPORTAÇÃO = CDate(TBNF!DT_IMPORTAÇÃO)
rs.Update
TBNF.MoveNext
Next
'fecha o Recordset
rs.Close
Set rs = Nothing
'Fecha o arquivo Excel
bdExcel.Close
Set bdExcel = Nothing
MsgBox "A planilha foi atualizada...", vbInformation, "Aviso"
End Sub