Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Импорт нескольких файлов excel в access / 14 сообщений из 14, страница 1 из 1
19.10.2008, 16:11
    #35602948
Qwe.Qwe1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
Есть куча файлов excel, во всех них - одинаковая по структуре таблица с данными. Есть БД с уже созданной аналогичной таблицей, пустой. Как теперь можно все эти excel'евские файлы импортировать в access, автоматически? Вручную долго.
...
Рейтинг: 0 / 0
19.10.2008, 23:21
    #35603225
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
Из акса можно записать в таблицу, скажем такой процедурой (в предположении, что целевая таблица, в примере называется fromexcel, уже создана и что все файлы находятся в одной папке)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub getdirfiles()
    Dim d, pth, strs, path
    path = "c:\temp\"
    pth = path & "*.xls"
    d = Dir(pth)
    Do While d <> ""
        strs = "Insert into fromexcel select * from [Лист1$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]"
        CurrentDb.Execute strs
        d = Dir
    Loop
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
26.07.2012, 14:09
    #37893814
tgm
tgm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
mds_worldИз акса можно записать в таблицу, скажем такой процедурой (в предположении, что целевая таблица, в примере называется fromexcel, уже создана и что все файлы находятся в одной папке)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub getdirfiles()
    Dim d, pth, strs, path
    path = "c:\temp\"
    pth = path & "*.xls"
    d = Dir(pth)
    Do While d <> ""
        strs = "Insert into fromexcel select * from [Лист1$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]"
        CurrentDb.Execute strs
        d = Dir
    Loop
End Sub



Добрый день.Подскажите пожалуйста, как в макросе заменить конкретное имя листа, на его порядковый номер в книге,если нужный лист в разных книгах имеет разные имена, но везде это 1-й лист?
...
Рейтинг: 0 / 0
26.07.2012, 23:17
    #37894546
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
tgm,

если речь о первом листе, то вместо [Лист1$] в запросе напишите, например, [A1:IV65535] as Z и автоматически попадете на первый лист.
...
Рейтинг: 0 / 0
26.07.2012, 23:19
    #37894547
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
Собственно, диапазон не обязательно такой всеохватный. Достаточно нужного вам.
...
Рейтинг: 0 / 0
26.07.2012, 23:45
    #37894574
tgm
tgm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
mds_world,спасибо Вам большое! Будем пробовать.
...
Рейтинг: 0 / 0
17.07.2013, 17:08
    #38334482
Импорт нескольких файлов excel в access
А как реализовать просто импорт всех файлов excel (таблицы) из определенной папки в таблицы с названием файлов?
...
Рейтинг: 0 / 0
17.07.2013, 17:51
    #38334552
Импорт нескольких файлов excel в access
Вежливый_ОператорБДА как реализовать просто импорт всех файлов excel (таблицы) из определенной папки в таблицы с названием файлов?
Тебе нужно циклом перебрать файлы в эксель и на каждом проходе делать импорт файла в таблицу с таким же названием.
Например, так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub testprogon()
Dim strFileName
Dim fso, fld, f1, fc, s
Dim strFullFileName As String
Set fso = CreateObject("Scripting.FileSystemObject")
folderspec = "d:\docs\И так далее\"
Set fld = fso.GetFolder(folderspec)
Set fc = fld.Files
For Each f1 In fc
    s = f1.Name
    strFullFileName = folderspec & s
    'При каждом проходе создается таблица s, и далее она заполняется данными из
    'именованного диапазона "Data0", при отсутсвии такого диапазона возникает ошибка - и капец работе
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, s, strFullFileName, -1, "Data0"
    MsgBox "Import Done " & strFullFileName
Next
End Sub


-----
Не люблю Progress OpenEdge
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
30.01.2018, 22:38
    #39593620
kirikys
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
Всем добрый вечер. Подскажите пожалуйста, я в VBA не очень силен, где я накосячил:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub getdirfiles()
    Dim d, pth, strs, path
    path = "C:\Users\samsonov.k\Desktop\&#206;&#242;&#247;&#229;&#242;&#251; &#228;&#235;&#255; &#232;&#236;&#239;&#238;&#240;&#242;&#224;\"
    pth = path & "*.xlsm"
    d = Dir(pth)
    Do While d <> ""
        strs = "UPDATE [dbo].[Dannue]"
       SET [Clinika] = (select Clinika from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )
      ,[Opl] = (select Opl from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]
      ,[Kred] = (select Kred from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )
      ,[ProsKred] = (select ProsKred from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )
      ,[Vurychka] =(select Vurychka from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2])
      ,[Nachisl] = (select Nachisl from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2])
      ,[Prixod] = (select Prixod from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2])
      ,[Vydacha] = (select Vydacha from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )
      ,[Rasxod] = (select Rasxod from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )
      ,[Ost_Skl] = (select Ost_Skl from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )
      ,[Ost_Kab] = (select Ost_Kab from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )
      WHERE dbo_Dannue.Mes_Year = [Сводный$].Mes_Year"
        
        CurrentDb.Execute strs
        d = Dir
    Loop
End Sub

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
31.01.2018, 00:22
    #39593646
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub getdirfiles()
    Dim d, pth, strs, path
    path = "C:\Users\samsonov.k\Desktop\&#206;&#242;&#247;&#229;&#242;&#251; &#228;&#235;&#255; &#232;&#236;&#239;&#238;&#240;&#242;&#224;\"
    pth = path & "*.xlsm"
    d = Dir(pth)
    Do While d <> ""
        strs = "UPDATE [dbo].[Dannue]"+ _
      " SET [Clinika] = (select Clinika from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )"+ _
      ",[Opl] = (select Opl from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]"+ _
      ",[Kred] = (select Kred from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )"+ _
      ",[ProsKred] = (select ProsKred from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )"+ _
      ",[Vurychka] =(select Vurychka from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2])"+ _
      ",[Nachisl] = (select Nachisl from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2])"+ _
      ",[Prixod] = (select Prixod from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2])"+ _
      ",[Vydacha] = (select Vydacha from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )"+ _
      ",[Rasxod] = (select Rasxod from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )"+ _
      ",[Ost_Skl] = (select Ost_Skl from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )"+ _
      ",[Ost_Kab] = (select Ost_Kab from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )"+ _
      " WHERE dbo_Dannue.Mes_Year = [Сводный$].Mes_Year"
        
        CurrentDb.Execute strs
        d = Dir
    Loop
End Sub


синтаксис поправил, логику не смотрел
...
Рейтинг: 0 / 0
01.02.2018, 09:43
    #39594625
kirikys
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
Shocker.Pro,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub getdirfiles()
    Dim d, pth, strs, path
    path = "C:\Users\samsonov.k\Desktop\Отчеты для импорта\"
    pth = path & "*.xlsm"
    d = Dir(pth)
    Do While d <> ""
        strs = "UPDATE [dbo].[Dannue]" + _
      " SET [Clinika] = (select [Clinika] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )" + _
      ",[Opl] = (select [Opl] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]" + _
      ",[Kred] = (select [Kred] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )" + _
      ",[ProsKred] = (select [ProsKred] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )" + _
      ",[Vurychka] =(select [Vurychka] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2])" + _
      ",[Nachisl] = (select [Nachisl] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2])" + _
      ",[Prixod] = (select [Prixod] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2])" + _
      ",[Vydacha] = (select [Vydacha] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )" + _
      ",[Rasxod] = (select [Rasxod] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )" + _
      ",[Ost_Skl] = (select [Ost_Skl] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )" + _
      ",[Ost_Kab] = (select [Ost_Kab] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] )" + _
      "WHERE dbo_Dannue.Mes_Year = [Сводный$].[Mes_Year]"
        
        CurrentDb.Execute strs
        d = Dir
    Loop
End Sub



Помогите пожалуйста разобраться. Никак не могу понять где ошибка.
...
Рейтинг: 0 / 0
01.02.2018, 10:28
    #39594687
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
количество скобок не соответствует, что и написано в ошибке
...
Рейтинг: 0 / 0
07.02.2018, 11:28
    #39598025
kirikys
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Sub getdirfiles()
    Dim d, pth, strs, path
    Dim SQL$
    path = "C:\Users\samsonov.k\Desktop\rep_upload\"
    pth = path & "*.xlsm"
    d = Dir(pth)
    Do While d <> ""
        strs = "UPDATE [dbo_Dannue] " & _
      " SET [Clinika] = (select [Clinika] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] " & _
      "),[Opl] = (select [Opl] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]" & _
      "),[Kred] = (select [Kred] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] " & _
      "),[ProsKred] = (select [ProsKred] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2] " & _
      "),[Vurychka] =(select [Vurychka] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]" & _
      "),[Nachisl] = (select [Nachisl] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]" & _
      "),[Prixod] = (select [Prixod] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]" & _
      "),[Vydacha] = (select [Vydacha] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]" & _
      "),[Rasxod] = (select [Rasxod] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]" & _
      "),[Ost_Skl] = (select [Ost_Skl] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]" & _
      "),[Ost_Kab] = (select [Ost_Kab] from [Сводный$] IN '" & path & d & "'[Excel 8.0;HDR=YES;IMEX=2]" & _
      ") WHERE dbo_Dannue.Mes_Year = [Сводный$].[Mes_Year] ;"
        
        Debug.Print strs
        Stop
        
        CurrentDb.Execute strs
        d = Dir
    Loop
End Sub



А теперь вот так.... уже второй день сижу...
...
Рейтинг: 0 / 0
07.02.2018, 11:41
    #39598042
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт нескольких файлов excel в access
Значит неверное название поля где-то. Можно убирать строки понемногу и найти, какое именно.

А вообще, вместо того, чтобы писать тыщу раз "select x from [Сводный$] IN..." (что порождает такое же количество запросов к файлу), можно использовать JOIN в UPDATE
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Импорт нескольких файлов excel в access / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]