Olá a todos, venho solicitar ajuda em um outro projeto que estou fazendo, eu utilizei o código de importação que um amigo do forum postou e está funcionando tudo perfeitamente porem minha dúvida é como tratar de possíveis erros na hora que o cliente preencher a planilha a ser passada para o sistema, o modelo é o seguinte, tenho uma tabela de cadastro de produtos no access, porem para o cliente não precisar digitar tudo manualmente o cadastro dos produtos, ele vai preencher uma planilha ou copiar as informações para dentro dessa planilha de produtos de outro sistema e vai importar para dentro do meu sistema, porem preciso que sejam tratados alguns erros para se adequar ao meu sistema e não importar com erros como por exemplo se o código do produto que estiver na planilha for acima de 13 dígitos ou no campo preço estiver uma letra ou algo nesse sentido, precisaria tratar esses erros e se possível exibir uma lista com os produtos que não foram importados por algum motivo ou uma tabela temporária ou até mesmo se puder tratar esses dados no próprio excel (tipo apagar todos que deram certo e manter os que estão com algum erro), outro detalhe é preciso também preencher uma outra tabela (contendo as informações de estoque) desses produtos
o código que estou utilizando é esse abaixo
o bd e a planilha modelo está em anexo (nela já tem alguns possíveis erros)
o código que estou utilizando é esse abaixo
- Código:
Option Compare Database
Private Sub Comando0_Click()
'On Error Resume Next
'------------------------------------------------------------------'
' Adaptado do site UsandoAccess.com '
' Por FabioPaes em 24/01/2017 '
'------------------------------------------------------------------'
Dim strTabela As String
Dim strSQL As String
Dim bdExcel As DAO.Database
Dim rs, rs1 As DAO.Recordset
'Passa o local e nome do arquivo para a variável
strArquivo = CurrentProject.Path & "\Exemplo.xlsx"
'Abre arquivo ListaClientes.xls
Set bdExcel = OpenDatabase(strArquivo, False, False, "Excel 12.0;HDR=Yes;IMEX=0;")
'Monta a consulta do Recordset
strSQL = "SELECT * FROM [Planilha1$]"
'Abre o Recordset da consulta
Set rs = bdExcel.OpenRecordset(strSQL)
'Abre o recordset na tabela que recebera os dados
Set rs1 = CurrentDb.OpenRecordset("Tb_Produtos")
'Adiciona os dados a tabela tb1
Do While Not rs.EOF
rs1.AddNew
'verifico antes sem tem dados na primeira coluna, se tiver eu lanço, se nao eu ignoro!
If Nz(Len(rs(0)), 0) > 0 Then
rs1!CódigoDoProduto = rs(0) '0 é a primeira coluna do Excel
rs1!Descricao = rs(1)
rs1!unid = rs(2)
rs1!Preco = rs(3)
rs1!OBS = rs(4)
rs1.Update
End If
rs.MoveNext
Loop
'fecha o Recordset
rs.Close
Set rs = Nothing
rs1.Close
Set rs1 = Nothing
'Fecha o arquivo Excel
bdExcel.Close
Set bdExcel = Nothing
MsgBox "A Tabela foi Atualizada...", vbInformation, "Aviso"
End Sub
o bd e a planilha modelo está em anexo (nela já tem alguns possíveis erros)
- Anexos
- IMPORTA DO EXCEL COM RECORDSET.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (37 Kb) Baixado 37 vez(es)