Bom dia!
Tenho uma planilha excel que pode acescentar uma coluna quando eu puxo ela para base de dados na tabela ela da erro.
Esse código abaixo escolhe um arquivo e depois exporta para tabela GR55-050 se essa estiver com colunas diferentes da erro, queria poder colocar o nome dessa coluna em uma variavel e criar na tabela antes de exporter.
Gostaria que em VBA o sistema
Tenho uma planilha excel que pode acescentar uma coluna quando eu puxo ela para base de dados na tabela ela da erro.
Esse código abaixo escolhe um arquivo e depois exporta para tabela GR55-050 se essa estiver com colunas diferentes da erro, queria poder colocar o nome dessa coluna em uma variavel e criar na tabela antes de exporter.
Gostaria que em VBA o sistema
- Código:
Private Sub seletorarq_Click() ' Código Oficial Seletor de Arquivos
Dim appDialog As FileDialog
Dim stFile As String
Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean
Dim Vararqex As String
Dim BancoDados As Database 'novo codigo
Dim Tabela As Recordset 'novo codigo
Set appDialog = Application.FileDialog(msoFileDialogFilePicker)
Set BancoDados = CurrentDb 'novo codigo
Set Tabela = BancoDados.OpenRecordset("tselarq", dbOpenTable) 'novo codigo
With appDialog 'Abre Seletor de Arquivos
.AllowMultiSelect = False
.Title = "Indicadores fora do tempo"
.InitialView = msoFileDialogViewDetails
.InitialFileName = "y:\"
.Filters.Add "Arquivos Excel", "*.xlsx"
.Show
End With
If appDialog.SelectedItems.Count < 1 Then 'Gerencia selector de Arquivos
MsgBox "Nenhum Arquivo Selecionado" 'Aqui mostra se ele estiver vázio
Exit Sub
Else
stFile = appDialog.SelectedItems(1) ' Aqui preenche Campo e traz o nome do arquivo para ser manioulado.
MidWords = Mid(stFile, 89)
Me.NomeArq = MidWords
'Tabela.Index = codigo 'novo codigo
'MsgBox (NArq)
MsgBox (MidWords)
'Tabela.Seek "=", 1 'novo codigo
'If Tabela.NoMatch = True Then 'novo codigo
'MsgBox ("Registro encontrado!") ' novo codigo
'Else 'novo codigo
'MsgBox ("REsgitro não encontrado!") 'novo codigo
'End If 'novo codigo
End If
blnHasFieldNames = True
Vararqex = Me.NomeArq 'valor da caixa de texto a ser transferido para o relatorio
'MsgBox (Vararqex)
strPath = "y:" ' drive onde se situa o seu documento excel
strTable = "GR55-050" 'nome da tabela no seu banco
strFile = Dir(strPath & MidWords) 'nome do seu excel, se mudar para "*.xls" importa todas as folhas excel _
que estiverem em C:\ para a tabela do banco.
Do While Len(strFile) > 0
strPathFile = strPath & strFile
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
strTable, strPathFile, blnHasFieldNames
strFile = Dir()
Loop
End Sub