powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Импорт из Excel в Access
20 сообщений из 20, страница 1 из 1
Импорт из Excel в Access
    #39600872
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые форумчане!

Прошу помощи с настройкой импорта из книжки Екселя в табличку Акса

1. Какая именно библиотека за работу с экселькой ответит?

2. Как правильно попросить VBA открыть диалоговое окно для выбора файла?

3. Какую литературу курить чтобы понимать чем выцарапывать инфу из книжки? Книжка представляет собой таблицу с этапами работ по столбцам и объектами по строкам. Хочу в Аксе видеть таблицу - список объект-этап-значение.



ПС: я честно пытался искать это всё, но находил такие варианты, которые в половине случаев не работали у меня, а на другую половину не хватало интеллекта для расшифровки указаний, либо просто дичь была


и, на всякий случай, очень прошу не посылать меня на киберфорум, на корпоративке стоит его блокировка... ну только если там прям кландайк нужных знаний....

Спасибо!
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39600888
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не задача "импорта".
Надо или сначала в EXEL привести данные в нужный вид, а потом импортировать.
Либо импортировать в данном виде, а потом ACCESSe сконвертировать
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39600891
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevPКакая именно библиотека за работу с экселькой ответит?
Так стало быть библиотека Excel отвечает. Только нужно ли? Может хватить и запросов .

MokeevPКак правильно попросить VBA открыть диалоговое окно для выбора файла?
Есть несколько вариантов - свои классы на API или оффисный FileDialog

MokeevPКакую литературу курить чтобы понимать чем выцарапывать инфу из книжки? Книжка представляет собой таблицу с этапами работ по столбцам и объектами по строкам. Хочу в Аксе видеть таблицу - список объект-этап-значение.Для повышения образованности можешь почитать
Литвин П., Гетц К., Гунделой М., Разработка настольных приложений в Access 2002. Для профессионалов (+CD)


MokeevPочень прошу не посылать меня на киберфорум, на корпоративке стоит его блокировка... ну только если там прям кландайк нужных знаний....Ну да, ну да ... лица те же...
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39600933
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevPХочу в Аксе видеть таблицу - список объект-этап-значение
видимо удобнее получить столбиковый формат в екселе --код будет 20-30 строк
затем полученную табличку можно прилинковать к аксессу, чтобы уменьшить проблемы с актуальностью данных

---
п.с.
это разовая акция или основная таблица будет по-прежнему правиться в екселе
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39600941
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183Это не задача "импорта".
Надо или сначала в EXEL привести данные в нужный вид, а потом импортировать.
Либо импортировать в данном виде, а потом ACCESSe сконвертировать

В Excel ничего не могу сделать, таблица не моя, бороться с авторами нет сил боле , а отдавать пользователю возможность (точнее необходимость) куда-то к чему-то приводить таблицу моветон наверно...
А вот второй вариант для меня загадочен:
1. Обстоятельство №1 - таблица источник очень грязная, там куча дурной ненужной информации
2. Обстоятельство №2 - больше половины информации будет импортирована (ну то есть по той схеме что я изобразил в топике) с перевычислениями хотя наверно это не имеет значения
3. Я так понимаю что нужно сделать таблицу - помойку для первичного переноса и потом из неё экспортировать в крисивишный перечень?
4. Экспорт, соответственно, через запросы?


ПанургMokeevPКакая именно библиотека за работу с экселькой ответит?
Так стало быть библиотека Excel отвечает. Только нужно ли? Может хватить и запросов .
Ну да, верно :D после поверхностного изучения filedialog стало ясно что дело было не в бобине...

ПанургMokeevPКак правильно попросить VBA открыть диалоговое окно для выбора файла?
Есть несколько вариантов - свои классы на API или оффисный FileDialog
Почти понял, пошёл курить эту тему с filedialog

ПанургMokeevPКакую литературу курить чтобы понимать чем выцарапывать инфу из книжки? Книжка представляет собой таблицу с этапами работ по столбцам и объектами по строкам. Хочу в Аксе видеть таблицу - список объект-этап-значение.Для повышения образованности можешь почитать
Литвин П., Гетц К., Гунделой М., Разработка настольных приложений в Access 2002. Для профессионалов (+CD)
Буду искать, отдельное спасибо!


ПанургMokeevPочень прошу не посылать меня на киберфорум, на корпоративке стоит его блокировка... ну только если там прям кландайк нужных знаний....Ну да, ну да ... лица те же...[/quot]
ась? что?
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39600943
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАMokeevPХочу в Аксе видеть таблицу - список объект-этап-значение
видимо удобнее получить столбиковый формат в екселе --код будет 20-30 строк
затем полученную табличку можно прилинковать к аксессу, чтобы уменьшить проблемы с актуальностью данных

---
п.с.
это разовая акция или основная таблица будет по-прежнему правиться в екселе

Понимаю, что это может прозвучать абсурдно, но нет, вариант прилинкованной таблицы совершенно не устраивает, так как нужна фиксация каким файлом (после обновления данных таблицу переименовывают) были добавлены или удалены значения. У меня вообще к той таблице доступ read only по жизни. Это акция постоянная регулярная и нужно чтобы юзер только кнопки да/нет нажимал и иногда что-то вводил, но это уже другая тема для вопроса.
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601043
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevPвариант прилинкованной таблицы совершенно не устраивает,
тогда многое зависит от того
--сколько полезных столбцов в ексельке(более 255 или менее)
--есть ли в ексельке уникальный столбик для однозначной привязки новых записей к записям, которые уже введены в аксесс
--есть ли еще полезная информация в ексельке кроме объект/этап(может там на позицию 10-15 столбиков, скрытых под группировку --ведь в екселе может быть и 16000 столбцов)
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601090
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это разовая работа или надо делать постоянно?
Если разовая, то думаю нетрудно произвести первичную обработку до нужного вида.
Если постоянная/периодическая, то с учетом "грязи" сложно что-то посоветовать.
В ACCESSe есть встроенный функционал связи с EXEL
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601107
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevP бороться с авторами нет сил боле
А в чем заключается проблема с борьбой? Обычно в таких случаях делается нормальный шаблон на Экселе со всеми ограничениями и проверками, в который грязь просто не занесешь. Делает этот шаблон, естественно, не пользователь, а компетентный человек.
Нет возможности сделать им нормальный шаблон?
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601289
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортаблица источник очень грязная, там куча дурной ненужной информации
Если нет четкого алгоритма отфильтровывания грязи и выколупывания нужной информации из книги, то можно расходиться :)
Если можно написать макрос в экселе по "причесыванию" данных (не обязательно насиловать файл источник, можно создавать копию, или копировать данные в новую книгу) , то можно думать дальше...например поднятие апликации экселя из акеса и пиление ячеек через vba, либо экспорт таблы в акес и пиление через vba+sql...
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601483
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАMokeevPвариант прилинкованной таблицы совершенно не устраивает,
тогда многое зависит от того
--сколько полезных столбцов в ексельке(более 255 или менее)
столбцов порядка 10

ПЕНСИОНЕРКА--есть ли в ексельке уникальный столбик для однозначной привязки новых записей к записям, которые уже введены в аксесс
Нет, именно такого нет (я осознаю всю его важность). Технология переброски и обновления записей будет основываться на связке /объект-дата/:
1. добавляется такая строка при первичном импорте.
2. при вторичном импорте данные из этой строки будут искаться в таблице-исходнике после обновления. если есть совпадение - ок, идём дальше. Нет совпадения - делаю небольшой репорт по этой лаже, помечаю эту строку как удалённая и идём дальше.
3. Аналогично сравниваю в обратном порядке и добавляю недостающие позиции в БД

пока что это единственный выход, который я придумал, потому что авторы таблицы совершенно не следят за её структурой и их совсем не волнует учёт данных (патамучта им это и не надо)

ПЕНСИОНЕРКА--есть ли еще полезная информация в ексельке кроме объект/этап(может там на позицию 10-15 столбиков, скрытых под группировку --ведь в екселе может быть и 16000 столбцов)
Собственно вся полезная информация именно к этому и сводится, просто этап, в данном случае, это дата. Мне же от этой даты нужно записать строку отскочив на несколько дней назад и ещё одну строку отскочив ещё больше назад. (предметно - дата отчёта в исходнике, нужна дата начала работ и дата предоставления на проверку)
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601484
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183Это разовая работа или надо делать постоянно?
Если разовая, то думаю нетрудно произвести первичную обработку до нужного вида.
Если постоянная/периодическая, то с учетом "грязи" сложно что-то посоветовать.
В ACCESSe есть встроенный функционал связи с EXEL
Это регулярная работа примерно раз в месяц.

bubuchaнапример поднятие апликации экселя из акеса и пиление ячеек через vba, либо экспорт таблы в акес и пиление через vba+sql...
Именно это я и предполагаю :)
У меня сейчас как бе дилетантская задача, я никак не осознаю как в вба подгрузить файл экселя и начать его колупать, ищу мануал на эту тему, но видимо поисковый талант мой зачах...
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601487
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevPстолбцов порядка 10
т.е. дата+объект+10этапов
или объект+10 этапов+(дата на пересечении)
какая-то куцая таблица или же куцее описание задачи
---
задачу нельзя нормально решить, если не понимаешь ее сути и назначение
чрезмерное упрощение примера --не всегда есть ХОРОШО
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601490
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАMokeevPстолбцов порядка 10
т.е. дата+объект+10этапов
или объект+10 этапов+(дата на пересечении)
какая-то куцая таблица или же куцее описание задачи
---
задачу нельзя нормально решить, если не понимаешь ее сути и назначение
чрезмерное упрощение примера --не всегда есть ХОРОШО

В таблице исходнике есть столбец с {объектом #1}, {датой отчёта#1}, {датой отчёта#2}, {датой отчёта#3}, {тд...} и ещё куча всякого хлама систематически встречающегося между этими столбцами

мне нужно из одной строки этой таблицы получить несколько строк примерно такого вида
{объектом #1}{дата отчёта#1 - 20дн}{параметр}{параметр}
{объектом #1}{дата отчёта#1 - 5 дн}{параметр}{параметр}
{объектом #1}{дата отчёта#2 - 20дн}{параметр}{параметр}
{объектом #1}{дата отчёта#2 - 5 дн}{параметр}{параметр}
{объектом #1}{дата отчёта#3 - 20дн}{параметр}{параметр}
{объектом #1}{дата отчёта#3 - 5 дн}{параметр}{параметр}
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601492
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevP, ну Вы прям мне в тему - щас ваяю импорт из Ёкселя в акс. идея понравилась у этих парней (хотя конечно неказисто кажется но это не так!) -посмотрите что и как они сделали - мож ближе станете к пониманию задачи.
это видео. код никто не даст конечно :)
http://bitforce.ru/ip-video.html


обязательно почитайте умную книжку (которую посоветовали выше-щитай библия вбашника (хватит и 1-го тома с головой=почти 1000 стр.) - разница в скорости программирования как минимум на 2 порядка изменится.

накидал -вытащил из проекта пару тройку функций- они вроде даже стыкуются разбирайтесь-не редактировал, так что там кое что непонятно как бы,
Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Public Function openfilepath(dt As MsoFileDialogType, titles$, Pathname$, Mult As Boolean, Res%) As String
With Application.FileDialog(dt)
   .Title = titles '"Выберите файл"
   .InitialFileName = Pathname ' путь
   If dt = 1 Then
   .AllowMultiSelect = Mult
   .Filters.Clear
    .Filters.Add "MS Excel", "*.xls,*.xlsx", 1
    End If
    Res = .Show
    If Res = 0 Then Exit Function
End With
' берем только один прайс!
openfilepath = Trim(Application.FileDialog(1).SelectedItems.Item(1))
End Function

Private Sub ProvFunction(IndeksorName As Variant)
' функция загрузки второго листа эксель
' откроем файл Эксель
Dim PathOfName$, Myresult%, Prov
Myresult = 1
PathOfName = openfilepath(msoFileDialogOpen, "Выберите дополнительный файл", myObject.Pathes, False, Myresult)
If Myresult = 0 Then MsgBox "Файл не выбран!": Exit Sub
Set objExel = New Excel.Application
Set objbook = objExel.Workbooks.Open(PathOfName)
If IsNumeric(IndeksorName) Then Prov = CLng(IndeksorName) Else Prov = CStr(IndeksorName)
Set ListExcel2 = objbook.Worksheets(Prov)
' открыли наш лист экселя - теперь будем искать в нем данные


End Sub


Private Function pfcPoiskAnotherfile(str$, ByVal StolbPoisk&, ByVal StolbResult&, Listname As Excel.Worksheet) As String
' str-это данные которые мы будем искать в другом файле
' StolbPoisk-столбец в котором будем искать по образцу str$
 ' StolbResult  столбец из которого вытащим результат
' Myvalue-собственно результат
' Listname-лист в файле в котором ищем то что нам надо
Dim listrow As Range, myvalue$

  Set listrow = Listname.Columns(StolbPoisk).Find(str, , xlValues, xlWhole, xlByColumns, xlNext)
If listrow.row > 0 Then myvalue = Listname.Cells(listrow.row, StolbResult) Else myvalue = vbNullString
pfcPoiskAnotherfile = myvalue
End Function


это просто пример!
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601495
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko разница в скорости программирования как минимум на 2 порядка изменится.
То есть, минимум в 100 раз?
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601498
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michellealecko разница в скорости программирования как минимум на 2 порядка изменится.
То есть, минимум в 100 раз?
турбореактивный кодер :D

aleckoMokeevP, ну Вы прям мне в тему - щас ваяю импорт из Ёкселя в акс. идея понравилась у этих парней (хотя конечно неказисто кажется но это не так!) -посмотрите что и как они сделали - мож ближе станете к пониманию задачи.
Вот тут я немножко не понял куда там смотреть, куча видео, всё изучить?) а код сейчас попробую осознать, спасибо!
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601501
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevP,
да прям первое со 2-й минуты можно - сложная структура файла, форматирование и пр.
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601511
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleckoMokeevP,
да прям первое со 2-й минуты можно - сложная структура файла, форматирование и пр.
Ну, это круто и классно, примерно что-то такое и надо, только как?)

На самом деле я просто упёрся в то что не могу подружиться с Application.FileDialog :(
...
Рейтинг: 0 / 0
Импорт из Excel в Access
    #39601513
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MokeevPНа самом деле я просто упёрся в то что не могу подружиться с Application.FileDialog :(

А, не, понял всё (ну или до уровня понимания как он работает чтобы у меня работало)
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Импорт из Excel в Access
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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