Olá a todos,
Preciso importar uma tabela do excel para um outra tabela do access rotineiramente. Para isso estou utilizando o código abaixo, contudo, eventualmente quando da importação de uma tabela do excel com varias linhas de informação para a tabela do access 2010, o código importa linhas sem nenhuma informação. Por exemplo, na hipótese de haver 150 linhas de informação na tabela do excel, o access 2010 importar as 150 linhas com a informação correta, mas acrescenta mais 50 que estão vazias. Preciso limitar a importação da informação somente as células da tabela do excel preenchida com informações. Alguém tem alguma sugestão? Desde já fico grato.
Função utilizada para importação da informação.
Preciso importar uma tabela do excel para um outra tabela do access rotineiramente. Para isso estou utilizando o código abaixo, contudo, eventualmente quando da importação de uma tabela do excel com varias linhas de informação para a tabela do access 2010, o código importa linhas sem nenhuma informação. Por exemplo, na hipótese de haver 150 linhas de informação na tabela do excel, o access 2010 importar as 150 linhas com a informação correta, mas acrescenta mais 50 que estão vazias. Preciso limitar a importação da informação somente as células da tabela do excel preenchida com informações. Alguém tem alguma sugestão? Desde já fico grato.
Função utilizada para importação da informação.
- Código:
Function AbrirRC() As String
' Requer referencia a Microsoft Office 11 Object Library
On Error GoTo PROC_ERR
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Title = "selecione o ficheiro"
fd.Filters.Add "Ficheiro XLS", "*.xls", 1
fd.Show
If (fd.SelectedItems.Count > 0) Then
'------inicio importação excel para sincronização
Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean
blnHasFieldNames = True
strPathFile = fd.SelectedItems(1)
strTable = "tblNotaFiscalProdutos"
'importa para tabela local temporária
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, blnHasFieldNames
'sql verifica existentes e marca com não novo
' DoCmd.OpenQuery "xls01marcaExistentes", acViewNormal, acEdit
'sql atualiza existentes
' DoCmd.OpenQuery "xls02AtualizaExistentes", acViewNormal, acEdit
'sql lança novos no ficheiro funcionarios
' DoCmd.OpenQuery "xls03LancaNovos", acViewNormal, acEdit
MsgBox "Operação concluída.", vbInformation, ""
Else
MsgBox "Não foi escolhido nenhum ficheiro", vbInformation, ""
End If
PROC_EXIT:
Exit Function
PROC_ERR:
DoCmd.Hourglass False
If Err.Number = 3011 Then
LocalXML = ""
MsgBox ("Ficheiro inválido.")
Else
MsgBox Err.Description
End If
Resume PROC_EXIT
End Function