Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi gente, boa tarde. Eu queria saber se posso copiar dados de uma tabela, mas assim eu eu queria pegar somente os dados e não a tabela.
Na verdade eu criei um outro bd com a mesa estrutura. Eu queria copiar apenas os dados sem a estrutura tudo de uma vez só, pois são muitos dados.
Olá,
Imagino que este problema já tenha sido resolvido, mas como não foi postada nenhuma solução, segue uma rotina - mais ou menos - feita em VBA...
Sub modImportTable()
Dim FD As Object
Dim strCaminho As String, strTblOrg As String, strTblDst As String, SQL As String
On Error GoTo Err_Import
'Rotina para definir o banco de dados que contem a tabela desejada
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.InitialFileName = CurrentProject.Path 'Informa o folder padrão
.Filters.Add "Banco de Dados", "*.mdb", 1 'Informa o tipo de arquivo filtrado
.Title = "Selecionar arquivo" 'Informa o título da caíxa de diálogo
If .Show = -1 Then 'Abre a caixa de diálogo
For Each vrtSelectedItem In .SelectedItems
strCaminho = vrtSelectedItem 'Atribui o "endereço" do arquivo selecionado à variável
Next vrtSelectedItem
End If
End With
Set FD = Nothing 'Finaliza FD
'Atribuição de valores às variáveis - que pode ser substituida por uma TextBox ou um InputBox
strTblOrg = "tblChamadas"
strTblDst = "tblTemp"
'Rotina para linkar tabela e copiar as informações
DoCmd.TransferDatabase acLink, "Microsoft Access", strCaminho, acTable, strTblOrg, strTblDst, False
'Aqui a parte "mais ou menos" - não encontrei maneira de importar apenas os dados, sem a estrutura da tabela
DoCmd.SetWarnings False 'Sem aviso de execução de consulta
SQL = "INSERT INTO itblChamadas ( IdChamada, DtIni, DtFim, IdOperador, IdMidia, IdStatus ) " & _
"SELECT IdChamada, DtIni, DtFim, IdOperador, IdMidia, IdStatus FROM " & strTblDst
DoCmd.RunSQL SQL 'SQL que "copia" as informações da tabela de Origem para a Destino
SQL = "DROP Table " & strTblDst
DoCmd.RunSQL SQL 'Exclui a tabela temporária
'Finalização do processo
MsgBox "Processo executado com sucesso!", vbInformation, "iMasters - Access"
Exit_Import:
Exit Sub
Err_Import:
MsgBox "Erro número: " & Err.Number & vbLf & vbLf & Err.Description, vbCritical, "iMasters - Access"
Resume Exit_Import
End Sub[/Code]
PS: também seria interessante listar as tabelas eixtente no BD em uma ListBox, no form, ao invés de um valor fixo - acho que postei algo parecido...
Sem mais,
Julien Sorel
Criar uma copia? como a mesma estrutura?
Não entendi pois bastaria copiar e colar a tabela