Estou com um grupo de 200 pastas que possuem subpastas com arquivos em XLSX. Preciso reunir todos eles em um única pasta. Alguém sabe como posso fazer?
2 participantes
Colocar arquivos XLSX em uma única pasta e importar
RICARDO BARBOSA MACHADO- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 43
Registrado : 21/07/2014
- Mensagem nº1
Colocar arquivos XLSX em uma única pasta e importar
RICARDO BARBOSA MACHADO- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 43
Registrado : 21/07/2014
Descobri uma forma manual de fazer a transferência dos arquivos de várias pastas para uma só. Achei na internet. É só entrar na pasta "Master" ou na primeira pasta onde todos os arquivos se encontram pelo "Explorer", clicar na opção procurar, que fica na parte superior da tela e solicitar que ele procure todos os arquivos com extensão ".xlsx". Depois é só selecionar todos os arquivos encontrados e colar na pasta única.
Agora estou precisando de uma fórmula para importar todos esses arquivos para uma tabela no access, sendo que cada arquivo possui duas abas que precisam ser importadas.
Agora estou precisando de uma fórmula para importar todos esses arquivos para uma tabela no access, sendo que cada arquivo possui duas abas que precisam ser importadas.
Alvaro Teixeira- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 7996
Registrado : 15/03/2013
Olá Ricardo Machado,
Não falta exemplos no forum, veja como fazer uma "Busca":
https://www.maximoaccess.com/t1115-busca-no-forum-search
este por exemplo:
https://www.maximoaccess.com/t31536-resolvidoimportar-varios-arquivos-de-excel-para-uma-tabela-do-access
Abraço
Não falta exemplos no forum, veja como fazer uma "Busca":
https://www.maximoaccess.com/t1115-busca-no-forum-search
este por exemplo:
https://www.maximoaccess.com/t31536-resolvidoimportar-varios-arquivos-de-excel-para-uma-tabela-do-access
Abraço
RICARDO BARBOSA MACHADO- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 43
Registrado : 21/07/2014
Boa Noite,
Verifiquei os exemplos que têm no fórum, porém, nenhum atendeu o que eu preciso. Não sei se a procura que realizei foi errada.
Estou precisando importar as planilhas que coloquei na mesma pasta da seguinte forma:
1 - Todas elas possuem o mesmo layout;
2 - Elas possuem várias abas, mas preciso importar duas delas (BP e DRE) para duas tabelas distintas com o mesmo nome. Ou seja, as abas com nome BP para uma tabela chamada BP, e as abas com nome DRE para uma tabela com nome DRE;
3 - Preciso que nas linhas gravadas de determinado arquivo, tanto na tabela DRE quanto na tabela BP, seja gravado o nome do arquivo que foi importado (em todas as linhas importadas das respectivas abas);
4 - Preciso que ele replique a informação da célula A2 em cada linha da tabela (das duas abas importadas BP e DRE), indica o ano;
5 - tenho tanto arquivos com extensão xsl quanto arquivos com extensão xlsx.
obs.: segue um arquivo em excel como exemplo.
Obrigado!
Verifiquei os exemplos que têm no fórum, porém, nenhum atendeu o que eu preciso. Não sei se a procura que realizei foi errada.
Estou precisando importar as planilhas que coloquei na mesma pasta da seguinte forma:
1 - Todas elas possuem o mesmo layout;
2 - Elas possuem várias abas, mas preciso importar duas delas (BP e DRE) para duas tabelas distintas com o mesmo nome. Ou seja, as abas com nome BP para uma tabela chamada BP, e as abas com nome DRE para uma tabela com nome DRE;
3 - Preciso que nas linhas gravadas de determinado arquivo, tanto na tabela DRE quanto na tabela BP, seja gravado o nome do arquivo que foi importado (em todas as linhas importadas das respectivas abas);
4 - Preciso que ele replique a informação da célula A2 em cada linha da tabela (das duas abas importadas BP e DRE), indica o ano;
5 - tenho tanto arquivos com extensão xsl quanto arquivos com extensão xlsx.
obs.: segue um arquivo em excel como exemplo.
Obrigado!
- Anexos
- 1 - AGF_NOME_UF_MCU_2015.xls
- Você não tem permissão para fazer download dos arquivos anexados.
- (116 Kb) Baixado 3 vez(es)
RICARDO BARBOSA MACHADO- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 43
Registrado : 21/07/2014
Achei esse código do João Paulo, mas ele só importa a primeira ABA das planilhas. Além disso tem uma planilha que está fora do padrão e dá erro por não encontrar um nome na tabela.
Acho que tem de colocar uma regra para ele inserir os nomes dos campos que ele não encontrar automaticamente, outra para ele gravar o nome do arquivo em um campo específico e outra para ele gravar o ano e o nome do órgão que só se encontra na célula A2 e A3.
Sub Importa10030()
Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean
blnHasFieldNames = True
strPath = "C:\PlanilhasImportar\" ' drive onde se situa o seu documento excel
strTable = "10030_PlanilhasImportadas" 'nome da tabela no seu banco
strFile = Dir(strPath & "*.xls") '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
Obs.: não sei se pode fazer isso aqui no grupo, mas devido a urgência deposito 100,00 pra quem conseguir.
Acho que tem de colocar uma regra para ele inserir os nomes dos campos que ele não encontrar automaticamente, outra para ele gravar o nome do arquivo em um campo específico e outra para ele gravar o ano e o nome do órgão que só se encontra na célula A2 e A3.
Sub Importa10030()
Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean
blnHasFieldNames = True
strPath = "C:\PlanilhasImportar\" ' drive onde se situa o seu documento excel
strTable = "10030_PlanilhasImportadas" 'nome da tabela no seu banco
strFile = Dir(strPath & "*.xls") '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
Obs.: não sei se pode fazer isso aqui no grupo, mas devido a urgência deposito 100,00 pra quem conseguir.
RICARDO BARBOSA MACHADO- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 43
Registrado : 21/07/2014
Boa tarde,
Vou tentar ser mais específico:
Preciso importar uma grande quantidade de planilhas de uma pasta para um BD, mas os dados tem de ser importados da seguinte forma:
1 - Importar somente as abas BP e DRE para tabelas com o mesmo nome, ou seja, todas as abas BP's para uma tabela chamada BP e todas as abas DREs para um tabela chamada DRE;
2 - Ao importar preciso que seja replicada na tabela em um campo novo o nome do arquivo importado;
3 - Preciso que ele carregue o dado da célula A2 (ano) para todas as linhas importadas, bem como, o campo da célula C2 (nome). Se observarem ela só existe na primeira linha, preciso desse dado em todas as linhas;
Conforme o exemplo abaixo.
Vou tentar ser mais específico:
Preciso importar uma grande quantidade de planilhas de uma pasta para um BD, mas os dados tem de ser importados da seguinte forma:
1 - Importar somente as abas BP e DRE para tabelas com o mesmo nome, ou seja, todas as abas BP's para uma tabela chamada BP e todas as abas DREs para um tabela chamada DRE;
2 - Ao importar preciso que seja replicada na tabela em um campo novo o nome do arquivo importado;
3 - Preciso que ele carregue o dado da célula A2 (ano) para todas as linhas importadas, bem como, o campo da célula C2 (nome). Se observarem ela só existe na primeira linha, preciso desse dado em todas as linhas;
Conforme o exemplo abaixo.
- Anexos
- Todos_em_imagem.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (26 Kb) Baixado 4 vez(es)
RICARDO BARBOSA MACHADO- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 43
Registrado : 21/07/2014
Boa tarde,
Encontrei esse SQL que segundo o autor faz exatamente o que estou precisando, ou seja:
1 - Importa várias planilhas para uma tabela específica;
2 - Importa somente a ABA que eu preciso da planilha; e
3 - Insere o nome dos arquivos importados nos dados carregados para a tabela.
o problema é que ele está em SQL e não consegui coloca-lo no ACCESS.
Isso é possível?
Se não for, tem como traduzir isso para VBA?
PRINT'CRIA TABELA TMP'
PRINT CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' + CONVERT(VARCHAR(08), GETDATE(), 108)
IF EXISTS (SELECT NAME FROM TEMPDB.SYS.TABLES WHERE NAME LIKE '%#PERFORMANCE_TMP%') DROP TABLE #PERFORMANCE_TMP
CREATE TABLE #PERFORMANCE_TMP(
[NOME AGENTE] VARCHAR(MAX) NULL
, [ID AGENTE] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS ATENDIDAS] VARCHAR(MAX) NULL
, [TEMPO M¨¦DIO DE CONVERSA] VARCHAR(MAX) NULL
, [TEMPO M¨¦DIO OCUPADO] VARCHAR(MAX) NULL
, [TEMPO M¨¦DIO ACW] VARCHAR(MAX) NULL
, [TEMPO TOTAL LOGADO] VARCHAR(MAX) NULL
, [TEMPO TOTAL DE CONVERSA] VARCHAR(MAX) NULL
, [TEMPO TOTAL OCIOSO] VARCHAR(MAX) NULL
, [TEMPO TOTAL ACW] VARCHAR(MAX) NULL
, [TEMPO TOTAL TOCANDO] VARCHAR(MAX) NULL
, [TEMPO TOTAL EM PAUSA] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA AUTOMATICO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA INTERVALO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA PARTICULAR] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA PAUSA 10] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA TREINAMENTO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA FEEDBACK] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA APOIO/CEDIDO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA AMBULAT?RIO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA PRODUCT/OUTBOUND] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA PROBLEMAS T?CNICOS] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS CURTAS] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS TRANSFERIDAS] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS INTERNAS] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS REALIZADAS] VARCHAR(MAX) NULL
, [TEMPO M¨¦DIO DAS CHAMADAS REALIZADAS] VARCHAR(MAX) NULL
, [PORCENTAGEM TEMPO PRODUTIVO] VARCHAR(MAX) NULL
) ON [PRIMARY];
--==============================================================
-- CRIA TABELA TEMPORÁRIA PARA PEGAR O NOME DO ARQUIVO MAILING
--==============================================================
IF EXISTS (SELECT NAME FROM TEMPDB.SYS.TABLES WHERE NAME LIKE '%#BASE_PERFORMANCE_TMP%') DROP TABLE #BASE_PERFORMANCE_TMP
CREATE TABLE #BASE_PERFORMANCE_TMP ( PERFORMANCE VARCHAR(150), CONTADOR INT IDENTITY )
DECLARE @PASTA VARCHAR(MAX) SET @PASTA = 'MASTER.SYS.XP_CMDSHELL ''DIR \\SERVER-ATLAS\motiva\planejamento\MIS\RELATÓRIOS\Claro\Renta\2018\'+@MESREF+'\Performance\*.txt /B'''
-- select * from #BASE_ANALITICO_TMP
INSERT INTO #BASE_PERFORMANCE_TMP EXEC(@PASTA)
DELETE FROM #BASE_PERFORMANCE_TMP WHERE PERFORMANCE IS NULL
-- EXECUTA LOOPING QUE IMPORTA OS REGISTROS
PRINT'CRIA TABELA TMP DE INSERÇÃO'
PRINT CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' + CONVERT(VARCHAR(08), GETDATE(), 108)
IF OBJECT_ID('TEMPDB..#PERFORMANCE_CLARO_RENTA') IS NOT NULL BEGIN DROP TABLE #PERFORMANCE_CLARO_RENTA END
CREATE TABLE #PERFORMANCE_CLARO_RENTA(
[NOME AGENTE] VARCHAR(MAX) NULL
, [ID AGENTE] INT NULL
, [N¨²MERO DE CHAMADAS ATENDIDAS] INT NULL
, [TEMPO M¨¦DIO DE CONVERSA] INT NULL
, [TEMPO M¨¦DIO OCUPADO] INT NULL
, [TEMPO M¨¦DIO ACW] INT NULL
, [TEMPO TOTAL LOGADO] INT NULL
, [TEMPO TOTAL DE CONVERSA] INT NULL
, [TEMPO TOTAL OCIOSO] INT NULL
, [TEMPO TOTAL ACW] INT NULL
, [TEMPO TOTAL TOCANDO] INT NULL
, [TEMPO TOTAL EM PAUSA] INT NULL
, [TEMPO DE PAUSA AUTOMATICO] INT NULL
, [TEMPO DE PAUSA INTERVALO] INT NULL
, [TEMPO DE PAUSA PARTICULAR] INT NULL
, [TEMPO DE PAUSA PAUSA 10] INT NULL
, [TEMPO DE PAUSA TREINAMENTO] INT NULL
, [TEMPO DE PAUSA FEEDBACK] INT NULL
, [TEMPO DE PAUSA APOIO/CEDIDO] INT NULL
, [TEMPO DE PAUSA AMBULAT?RIO] INT NULL
, [TEMPO DE PAUSA PRODUCT/OUTBOUND] INT NULL
, [TEMPO DE PAUSA PROBLEMAS T?CNICOS] INT NULL
, [N¨²MERO DE CHAMADAS CURTAS] INT NULL
, [N¨²MERO DE CHAMADAS TRANSFERIDAS] INT NULL
, [N¨²MERO DE CHAMADAS INTERNAS] INT NULL
, [N¨²MERO DE CHAMADAS REALIZADAS] INT NULL
, [TEMPO M¨¦DIO DAS CHAMADAS REALIZADAS] INT NULL
, [PORCENTAGEM TEMPO PRODUTIVO] VARCHAR(MAX) NULL
, [DATA_DA_ACAO] datetime
, SKILL VARCHAR(MAX) NULL
, DATA_IMPORTACAO DATETIME
) ON [PRIMARY];
DECLARE @I INT, @F INT, @ARQV VARCHAR(250)
SET @I = (SELECT MIN(CONTADOR) FROM #BASE_PERFORMANCE_TMP)
SET @F = (SELECT MAX(CONTADOR) FROM #BASE_PERFORMANCE_TMP)
WHILE (@I <= @F) BEGIN
SET @ARQV = (SELECT PERFORMANCE FROM #BASE_PERFORMANCE_TMP WHERE CONTADOR = @I)
EXEC ('
BULK INSERT #PERFORMANCE_TMP
FROM
''\\SERVER-ATLAS\MOTIVA\planejamento\MIS\RELATÓRIOS\Claro\Renta\2018\'+@MESREF+'\Performance\'+@ARQV+'''
WITH(FIRSTROW =2, CODEPAGE = 1252, FIELDTERMINATOR = ''\t'', ROWTERMINATOR = ''0x0d'') ')
INSERT INTO #PERFORMANCE_CLARO_RENTA
SELECT
*
, convert(datetime, substring(LEFT(RIGHT(@ARQV, 12), 8 ),1,2)+'/'+substring(LEFT(RIGHT(@ARQV, 12), 8 ),3,2)+'/'+substring(LEFT(RIGHT(@ARQV, 12), 8 ),5,4), 103) [DATA_DA_ACAO]
, SUBSTRING(REPLACE(@ARQV, 'DATA_SKILL', ''),1, LEN(REPLACE(@ARQV, 'DATA_SKILL', ''))-13)[SKILL]
, GETDATE() [DATA_IMPORTACAO]
FROM
#PERFORMANCE_TMP
SET @I = @I+1
END
PRINT'INSERE OS REGISTROS NA TABELA TEMP FINAL'
PRINT CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' + CONVERT(VARCHAR(08), GETDATE(), 108)
INSERT INTO [Claro_Renta].[dbo].[PERFORMANCE_CLARO_RENTA]
SELECT * FROM #PERFORMANCE_CLARO_RENTA
END
Encontrei esse SQL que segundo o autor faz exatamente o que estou precisando, ou seja:
1 - Importa várias planilhas para uma tabela específica;
2 - Importa somente a ABA que eu preciso da planilha; e
3 - Insere o nome dos arquivos importados nos dados carregados para a tabela.
o problema é que ele está em SQL e não consegui coloca-lo no ACCESS.
Isso é possível?
Se não for, tem como traduzir isso para VBA?
PRINT'CRIA TABELA TMP'
PRINT CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' + CONVERT(VARCHAR(08), GETDATE(), 108)
IF EXISTS (SELECT NAME FROM TEMPDB.SYS.TABLES WHERE NAME LIKE '%#PERFORMANCE_TMP%') DROP TABLE #PERFORMANCE_TMP
CREATE TABLE #PERFORMANCE_TMP(
[NOME AGENTE] VARCHAR(MAX) NULL
, [ID AGENTE] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS ATENDIDAS] VARCHAR(MAX) NULL
, [TEMPO M¨¦DIO DE CONVERSA] VARCHAR(MAX) NULL
, [TEMPO M¨¦DIO OCUPADO] VARCHAR(MAX) NULL
, [TEMPO M¨¦DIO ACW] VARCHAR(MAX) NULL
, [TEMPO TOTAL LOGADO] VARCHAR(MAX) NULL
, [TEMPO TOTAL DE CONVERSA] VARCHAR(MAX) NULL
, [TEMPO TOTAL OCIOSO] VARCHAR(MAX) NULL
, [TEMPO TOTAL ACW] VARCHAR(MAX) NULL
, [TEMPO TOTAL TOCANDO] VARCHAR(MAX) NULL
, [TEMPO TOTAL EM PAUSA] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA AUTOMATICO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA INTERVALO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA PARTICULAR] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA PAUSA 10] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA TREINAMENTO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA FEEDBACK] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA APOIO/CEDIDO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA AMBULAT?RIO] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA PRODUCT/OUTBOUND] VARCHAR(MAX) NULL
, [TEMPO DE PAUSA PROBLEMAS T?CNICOS] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS CURTAS] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS TRANSFERIDAS] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS INTERNAS] VARCHAR(MAX) NULL
, [N¨²MERO DE CHAMADAS REALIZADAS] VARCHAR(MAX) NULL
, [TEMPO M¨¦DIO DAS CHAMADAS REALIZADAS] VARCHAR(MAX) NULL
, [PORCENTAGEM TEMPO PRODUTIVO] VARCHAR(MAX) NULL
) ON [PRIMARY];
--==============================================================
-- CRIA TABELA TEMPORÁRIA PARA PEGAR O NOME DO ARQUIVO MAILING
--==============================================================
IF EXISTS (SELECT NAME FROM TEMPDB.SYS.TABLES WHERE NAME LIKE '%#BASE_PERFORMANCE_TMP%') DROP TABLE #BASE_PERFORMANCE_TMP
CREATE TABLE #BASE_PERFORMANCE_TMP ( PERFORMANCE VARCHAR(150), CONTADOR INT IDENTITY )
DECLARE @PASTA VARCHAR(MAX) SET @PASTA = 'MASTER.SYS.XP_CMDSHELL ''DIR \\SERVER-ATLAS\motiva\planejamento\MIS\RELATÓRIOS\Claro\Renta\2018\'+@MESREF+'\Performance\*.txt /B'''
-- select * from #BASE_ANALITICO_TMP
INSERT INTO #BASE_PERFORMANCE_TMP EXEC(@PASTA)
DELETE FROM #BASE_PERFORMANCE_TMP WHERE PERFORMANCE IS NULL
-- EXECUTA LOOPING QUE IMPORTA OS REGISTROS
PRINT'CRIA TABELA TMP DE INSERÇÃO'
PRINT CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' + CONVERT(VARCHAR(08), GETDATE(), 108)
IF OBJECT_ID('TEMPDB..#PERFORMANCE_CLARO_RENTA') IS NOT NULL BEGIN DROP TABLE #PERFORMANCE_CLARO_RENTA END
CREATE TABLE #PERFORMANCE_CLARO_RENTA(
[NOME AGENTE] VARCHAR(MAX) NULL
, [ID AGENTE] INT NULL
, [N¨²MERO DE CHAMADAS ATENDIDAS] INT NULL
, [TEMPO M¨¦DIO DE CONVERSA] INT NULL
, [TEMPO M¨¦DIO OCUPADO] INT NULL
, [TEMPO M¨¦DIO ACW] INT NULL
, [TEMPO TOTAL LOGADO] INT NULL
, [TEMPO TOTAL DE CONVERSA] INT NULL
, [TEMPO TOTAL OCIOSO] INT NULL
, [TEMPO TOTAL ACW] INT NULL
, [TEMPO TOTAL TOCANDO] INT NULL
, [TEMPO TOTAL EM PAUSA] INT NULL
, [TEMPO DE PAUSA AUTOMATICO] INT NULL
, [TEMPO DE PAUSA INTERVALO] INT NULL
, [TEMPO DE PAUSA PARTICULAR] INT NULL
, [TEMPO DE PAUSA PAUSA 10] INT NULL
, [TEMPO DE PAUSA TREINAMENTO] INT NULL
, [TEMPO DE PAUSA FEEDBACK] INT NULL
, [TEMPO DE PAUSA APOIO/CEDIDO] INT NULL
, [TEMPO DE PAUSA AMBULAT?RIO] INT NULL
, [TEMPO DE PAUSA PRODUCT/OUTBOUND] INT NULL
, [TEMPO DE PAUSA PROBLEMAS T?CNICOS] INT NULL
, [N¨²MERO DE CHAMADAS CURTAS] INT NULL
, [N¨²MERO DE CHAMADAS TRANSFERIDAS] INT NULL
, [N¨²MERO DE CHAMADAS INTERNAS] INT NULL
, [N¨²MERO DE CHAMADAS REALIZADAS] INT NULL
, [TEMPO M¨¦DIO DAS CHAMADAS REALIZADAS] INT NULL
, [PORCENTAGEM TEMPO PRODUTIVO] VARCHAR(MAX) NULL
, [DATA_DA_ACAO] datetime
, SKILL VARCHAR(MAX) NULL
, DATA_IMPORTACAO DATETIME
) ON [PRIMARY];
DECLARE @I INT, @F INT, @ARQV VARCHAR(250)
SET @I = (SELECT MIN(CONTADOR) FROM #BASE_PERFORMANCE_TMP)
SET @F = (SELECT MAX(CONTADOR) FROM #BASE_PERFORMANCE_TMP)
WHILE (@I <= @F) BEGIN
SET @ARQV = (SELECT PERFORMANCE FROM #BASE_PERFORMANCE_TMP WHERE CONTADOR = @I)
EXEC ('
BULK INSERT #PERFORMANCE_TMP
FROM
''\\SERVER-ATLAS\MOTIVA\planejamento\MIS\RELATÓRIOS\Claro\Renta\2018\'+@MESREF+'\Performance\'+@ARQV+'''
WITH(FIRSTROW =2, CODEPAGE = 1252, FIELDTERMINATOR = ''\t'', ROWTERMINATOR = ''0x0d'') ')
INSERT INTO #PERFORMANCE_CLARO_RENTA
SELECT
*
, convert(datetime, substring(LEFT(RIGHT(@ARQV, 12), 8 ),1,2)+'/'+substring(LEFT(RIGHT(@ARQV, 12), 8 ),3,2)+'/'+substring(LEFT(RIGHT(@ARQV, 12), 8 ),5,4), 103) [DATA_DA_ACAO]
, SUBSTRING(REPLACE(@ARQV, 'DATA_SKILL', ''),1, LEN(REPLACE(@ARQV, 'DATA_SKILL', ''))-13)[SKILL]
, GETDATE() [DATA_IMPORTACAO]
FROM
#PERFORMANCE_TMP
SET @I = @I+1
END
PRINT'INSERE OS REGISTROS NA TABELA TEMP FINAL'
PRINT CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' + CONVERT(VARCHAR(08), GETDATE(), 108)
INSERT INTO [Claro_Renta].[dbo].[PERFORMANCE_CLARO_RENTA]
SELECT * FROM #PERFORMANCE_CLARO_RENTA
END
RICARDO BARBOSA MACHADO- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 43
Registrado : 21/07/2014
Bom dia,
Achei um código que importa várias planilhas, tentei fazer uma adaptação para importar uma SHEET específica, mas não deu certo. Alguém consegue me ajudar?
Private Sub Comando3_Click()
' Importar varios Sheets de Varias Planilhas para a mesma tabela
'Wellington Araujo
'Declara??o das Variaveis
'Dim appExcel As Excel.Application
'Dim wb As Excel.Workbook
'Dim sh As Excel.Worksheet
Dim strValue As String
Dim strTable As String
Dim strPathFile As String, strFile As String, strPath As String
Dim blnHasFieldNames As Boolean
blnHasFieldNames = True
'Limpa a Tabela Tab_Exemplos
DoCmd.SetWarnings (False)
sql = "DELETE * FROM Tal_BP"
DoCmd.RunSQL sql
DoCmd.SetWarnings (True)
strPath = "e:\AGF\teste\" ' drive onde se situa o seu documento excel
strTable = "Tal_BP" 'nome da tabela que sera criada no seu banco
strFile = Dir(strPath & "*.xl*") 'nome do seu excel, se mudar para "*.xls" importa todas as folhas excel que estiverem no Drive para a tabela do banco.
Do While Len(strFile) > 0
strPathFile = strPath & strFile
Set appExcel = CreateObject("Excel.Application")
Set wb = appExcel.Workbooks.Open(strPathFile) 'nome do seu excel e seu diretorio
For Each sh In wb.Sheets
Debug.Print sh.Name
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, True, sh.Name & "BP"
Next
wb.Close
appExcel.Quit
strFile = Dir()
Loop
On Error GoTo 0
Exit Sub
End Sub
Achei um código que importa várias planilhas, tentei fazer uma adaptação para importar uma SHEET específica, mas não deu certo. Alguém consegue me ajudar?
Private Sub Comando3_Click()
' Importar varios Sheets de Varias Planilhas para a mesma tabela
'Wellington Araujo
'Declara??o das Variaveis
'Dim appExcel As Excel.Application
'Dim wb As Excel.Workbook
'Dim sh As Excel.Worksheet
Dim strValue As String
Dim strTable As String
Dim strPathFile As String, strFile As String, strPath As String
Dim blnHasFieldNames As Boolean
blnHasFieldNames = True
'Limpa a Tabela Tab_Exemplos
DoCmd.SetWarnings (False)
sql = "DELETE * FROM Tal_BP"
DoCmd.RunSQL sql
DoCmd.SetWarnings (True)
strPath = "e:\AGF\teste\" ' drive onde se situa o seu documento excel
strTable = "Tal_BP" 'nome da tabela que sera criada no seu banco
strFile = Dir(strPath & "*.xl*") 'nome do seu excel, se mudar para "*.xls" importa todas as folhas excel que estiverem no Drive para a tabela do banco.
Do While Len(strFile) > 0
strPathFile = strPath & strFile
Set appExcel = CreateObject("Excel.Application")
Set wb = appExcel.Workbooks.Open(strPathFile) 'nome do seu excel e seu diretorio
For Each sh In wb.Sheets
Debug.Print sh.Name
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, strPathFile, True, sh.Name & "BP"
Next
wb.Close
appExcel.Quit
strFile = Dir()
Loop
On Error GoTo 0
Exit Sub
End Sub
» [Resolvido] Gravar (Upload) arquivos .pdf, .jpg, .docx, .xlsx, .zip em uma tabela vinculada ao SQL server
» Pular linha e Importar xlsx para o Access
» [Resolvido]Importar Planilha Excel .Xlsx com Senha
» [Resolvido]Anexar arquivos para determinada pasta, criando a pasta com o COD de identificação e criando hiperlink para a pasta.
» Importar XML em uma única tabela no access
» Pular linha e Importar xlsx para o Access
» [Resolvido]Importar Planilha Excel .Xlsx com Senha
» [Resolvido]Anexar arquivos para determinada pasta, criando a pasta com o COD de identificação e criando hiperlink para a pasta.
» Importar XML em uma única tabela no access