IMPORTAR PARA EXCEL

USUARIO.EXCLUIDOS 17/04/2007 08:58:21
#212213
Pessoal, bom dia!!!
Preciso importar os dados de 03 planilhas do excel para 03 tabelas do meu BD (Access2000). Já pesquisei vários exemplos do site, mas não me ajudou. O que quero é o seguinte:

Me sistema que roda em um micro bem longe da matris da empresa gera todo final de tarde 03 planilhas com os dados de vendas, então o pessoal me envia estas planilhas por email, ai preciso importar cada conteudo de cada planilha para cada tabela referencial do BD.

Preciso de uma rotina que faz a importação utilizando o Dao ou DataControl.

Marcelino Neto
VB 6.0
Access2000
USUARIO.EXCLUIDOS 23/04/2007 10:46:13
#213304
[txt-color=#3333ff]Dá uma olhada no código a seguir... e veja se ajuda...[/txt-color]


Private Sub Import()
Dim linhaAtual, numLinhasPlan As Long
Dim abrePlan As String
Dim valorPlan As String
Dim strSQL, Sql_into As String
Dim insere_dados As String
Dim varConta As String
Dim varValor As String
Dim varData As String
Dim nomeArquivo As String
Dim tipoArquivo As String

numLinhasPlan = 1
linhaAtual = 1
'***************************************************************************************************' VERIFICA E ARMAZENA NOME E DATA ARQUIVO
'*************************************************************************************************** teste = edit1.Text
cont = 8
Do While True
a = Right(teste, cont)
If (Mid(a, 1, 1) = "\") Then
tipoArquivo = Right(a, 3)
nomeArquivo = Mid(a, 2, cont - 5)
Exit Do
End If
cont = cont + 1
Loop
dataArquivo = Date
dataArquivo = Format(dataArquivo, "mm/dd/yyyy")
Set tbARQUIVO = gdb.Execute("select * from tbArquivo WHERE nome = '" & nomeArquivo & "' ")
If Not (Mid(nomeArquivo, 5, 4) = "AMEX") Then
MsgBox "Arquivo não corresponde a conta Amex! ", vbInformation + vbOKOnly, "Crédito em Conta"
Exit Sub
End If
If Not tbARQUIVO.RecordCount = 0 Then
MsgBox "Arquivo já foi importado anteriormente, favor verificar! ", vbInformation + vbOKOnly, "Crédito em Conta"
Exit Sub
End If
Set tbARQUIVO = gdb.Execute("select * from tbArquivo")
insere_sql = "insert into tbArquivo(nome, dataImportacao, tipo) values('" & nomeArquivo & "'," _
& "#" & dataArquivo & "#, '" & tipoArquivo & "')"
gdb.Execute (insere_sql)
If edit1.Text <> "" Then
Set oleExcel = CreateObject("Excel.Application")
Set oleWorkBook = oleExcel.Workbooks.Open(edit1.Text)
temp = Len(edit1.Text)
varData = Mid(edit1.Text, (temp) - 7, 2) & "/" & Mid(edit1.Text, (temp) - 9, 2) & "/" & Mid(edit1.Text, (temp) - 5, 2)
numLinhasPlan = oleWorkBook.Application.Cells(65536, 1).End(xlUp).Row
Do While (linhaAtual <= numLinhasPlan)
If oleWorkBook.Application.Cells(linhaAtual, 2) <> "" Then
If IsNumeric(oleWorkBook.Application.Cells(linhaAtual, 2)) Then
varConta = (oleWorkBook.Application.Cells(linhaAtual, 2))
varConta = CDbl(Trim(Mid(varConta, 1, 13)))
varValor = ((oleWorkBook.Application.Cells(linhaAtual, 6)))
varValor = Format(varValor, "#,##0.00")
varValor = TrocaCaracter(varValor, ".", "")
varValor = TrocaCaracter(varValor, ",", ".")
'***************************************************************************************************
' select baseando-se na conta e valor1 (valor) + função para trocar "," pelo "."
'***************************************************************************************************
If Not gdb.Execute("select * From tbAmex WHERE tbAmex.valor = " & varValor & " And tbAmex.conta = '" & varConta & "' And tbAmex.data_regularizacao Is Null").RecordCount = 0 Then
Set tbAMEX = gdb.Execute("update tbAmex SET valor = " & varValor & ", data_regularizacao = #" & varData & "# WHERE tbAmex.valor = " & varValor & " And tbAmex.conta = '" & varConta & "' And (tbAmex.data_regularizacao Is Null)")
statusBarCod.Panels.Item(1) = "Importando dados: " & varConta
Else
Set tbAMEX = gdb.Execute("select * from tbAmex")
insere_sql = "insert into tbAmex (conta, valor, data) values ('" & varConta & "', " & varValor & ", #" & varData & "#)"
statusBarCod.Panels.Item(1) = "Importando dados: " & varConta
gdb.Execute (insere_sql)
End If
End If
End If
linhaAtual = linhaAtual + 1
Loop
oleWorkBook.Application.Workbooks.Close
Set oleExcel = Nothing
Set oleWorkBook = Nothing
Set oleWorkSheet = Nothing
statusBarCod.Panels.Item(1) = "Pronto"
MsgBox "Importação Concluida! ", vbInformation + vbOKOnly, "Crédito em Conta"
End If
End Sub

Tópico encerrado , respostas não são mais permitidas