powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / динамический импорт из excel
51 сообщений из 51, показаны все 3 страниц
динамический импорт из excel
    #39638286
Привет всем.
Есть множество файлов приаттаченного вида с которыми приходится работать. Хочу облегчить себе работу и импортировать данные в Access и сделать более удобочитаемый вид, точнее форму. Но перед этим данные нужно импортировать из файла. Проблема в том, что количество ячеек динамическое от файла к файлу. Что не изменно, так это название полей в таблицах. Например, "Полный номер сектора". В данном файле это ячейка "A66".
Каким образом можно найти "Полный номер сектора", т.е. начало таблицы и определить её окончание по пустому значению этого же столбца? В данном случае это ячейка "A100". Прошу сильно не пинать, т.к. я в этом не силён. Работы меньше не становится и вот этим приходится заниматься в своё личное время :(
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638352
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем вкурил ТЗ,но хочу сказать:
1.Если планируется импорт таблиц Ёкселя в Акцесс, то при их создании надо забыть об объединении ячеек и пропуске строк(пустых строках)
2.Свойство СurrentRegion определяет количество строк,столбцов в ПРАВИЛЬНО созданной таблице
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638355
Сижу, мозг кипит. На данном этапе пытаюсь программно получить диапазон таблицы A66:Z99

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
adr = XLWs.Cells.find(What:="Полный номер сектора", LookAt:=xlWhole).Address            ' находим строку (LookAt:=xlWhole <- полное совпадение)
XLWs.Cells.find(What:="Полный номер сектора", LookAt:=xlPart).Activate                  ' активируем ее
sRowNumber = XLWs.Cells.find(What:="Полный номер сектора", LookAt:=xlWhole).Row         ' получаем номер строки
sColunmNumber = XLWs.Cells.find(What:="Полный номер сектора", LookAt:=xlWhole).Column   ' получаем номер колонки
ToDown = XLWs.Range(XLAp.Selection, XLAp.Selection.End(xlDown)).Address                 ' получаем диапазон таблицы (сверху вниз)
ToRight = XLWs.Range(XLAp.Selection, XLAp.Selection.End(xlToRight)).Address             ' получаем диапазон таблицы (вправо)
Debug.Print adr & "  " & sRowNumber & " " & ToDown & "  " & "ToRight=" & ToRight & "  " & sColunmNumber


Из дебага получил это:
$A$66 66 $A$66:$A$99 ToRight=$A$66:$Z$66 1

Вижу, что если заменить A99=>Z99, то смогу использовать в запросе.
Код: vbnet
1.
strSQL = "SELECT * FROM [" & NameList & Диапазон & "$] IN '" & FilePath & "'[Excel 8.0;IMEX=1;]"


А нельзя ли как-то использовать XLWs.Range(XLAp.Selection, XLAp.Selection.End(****)).Address для получения итогового диапазона A66:Z99?
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638433
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не мучайтесь с анализом экселевской таблицы, это медленно и мутно. Просто импортируйте все данные листа в таблицу и анализируйте данные уже в таблице. Тут и пустые строки пригодиться могут для анализа.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638434
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinНе мучайтесь с анализом экселевской таблицы, это медленно и мутно. Просто импортируйте все данные листа в таблицу и анализируйте данные уже в таблице. Тут и пустые строки пригодиться могут для анализа.
причем я все импортирую в рабочую таблицу в текстовом формате полей , чтобы меньше зависеть от самостийности каждой екселевской клетки
--все проверяю и исправляю в аксесс в рабочей таблице
--только затем дописываю в основную таблицу, преобразуя текстовый формат в требуемый
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638459
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по мне так наоборот - можно и форматирование использовать (при анализе прайсов со строковой разбивкой по группам очень помогает).
ТС крутится вокруг да около, нашел номер строки создал range, да забрал. все.
искать можно и так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
что нить типа
Dim varCell(4) As Long, Lastrow As Long, Nomrow As Long, str$
Dim objExel As Excel.Application, objsheet As Excel.Worksheet, objbook As Excel.Workbook
Set objExel = New Excel.Application
Set objbook = objExel.Workbooks.Open(fname(0, i))' ну тут понятно файлы
      Set objsheet = objbook.Worksheets(1)' имена/индексы
varCell(2)-столбец по которому оцениваем размер таблицы
varCell(1) - столбец где ищем
str=""' искомое слово
 Lastrow = objsheet.Cells(objsheet.rows.Count, varCell(2)).End(xlUp).row ' наша последняя строка- до которой искать будем
Nomrow = varCell(1)' с какой строки начинается поиск
Do Until Nomrow > Lastrow
  If objsheet.Cells(Nomrow, varCell(1)) = str Then ' можно objsheet.Cells(Nomrow, varCell(1)) пообрабатывать
...
end if
                Nomrow = Nomrow + 1
            Loop


как Range создать надеюсь показывать не надо?
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638471
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoнашел номер строки создал range, да забрал. все
На больших файлах это работает очень медленно, в аксе будет на порядок быстрее
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638482
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin, конечно, в аксе быстрее, однако
1. импорт .xls в 7-м аксе часто бывает некорректным -его надо контролировать (может в других версиях таких проблем нет), если открывать эксель как объект - проблем нет,
2. засорение базы ненужными данными
3. бывает необходимость искать с использованием форматирования, хотя конечно в этом случае когда количество строк тысяч от 10 - времени тратится заметно.
В данном конкретном случае мы видим номера адресов "А66", "А100" - что не указывает на большие объемы данных.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638500
alecko,
как Range создать надеюсь показывать не надо? - Желательно :) Для меня акс - палочка выручалочка, часто спасает от рутиной работы.
П.С. Я инженер, а не программист. Многому научился благодаря этому форуму, но в рамках решения своих текущих задач. С обработкой экселя сталкивался только на уровне импорт простой таблицы или простой экспорт. Тут задачка посложнее, и желательно сразу правильно понять что к чему. В общем вопросов больше чем ответов.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638520
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АрхимедоффП.С. Я инженер, а не программист.
все оттуда. программеры кресты любят.
из ТЗ не ясно что Вы именно ходите сделать после того как нашли, то что хотели.
тем методом который был показан можно и без Range обойтись - просто проходите куда надо вверх, вниз по таблице, да забираете что хотите,
в общем случае если с range , то
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim Range1 as Range
set Range1=objsheet.range(objsheet.cells(varCell(1),1),objsheet.cells(Nomstrok,varCell(2))
' этот способ не нравится - но он широко распространен
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, TableName(куда), FileName(откуда), False, Range1
' либо 
Dim i&, Mytbl as recordset, Massiv&(6)
'Massiv&(6)-это массив столбцов где находятся нужные данные
set  Mytbl =Currentdb.openrecordset("Mytbl", dbOpenDynaset)
with  Mytbl 
For i=1 to Range1.Rows.Count
.addnew' DAO
for j=1 to Ubound(Massiv)
' вроде так
.fields(j)=objsheet.cells(Range1.row, Massiv(j))
Next j
.update
Next
end with

p.s.
Код: vbnet
1.
2.
3.
4.
5.
6.
' --------------------------
в основном  Range использую когда надо наоборот делать экспорт в Эксель,т.е. 
sheet2Excel.Range("B6:R6").value = "Общий заказ от ООО ""...ис""(справочно)" ' сразу merge
' ---------------------------------------
а также очень удобен такой способ
Set Range1= objsheet.UsedRange.rows.Find(str , , xlValues, xlWhole, xlByRows, xlNext) '  нашли нужную строку

...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638562
alecko,
1. Имеем диапазон секторов A66:Z99- импортируем с привязкой к ячейкам С2,С4,С5 (чтобы потом использовать в качестве поиска)
2. Далее импортируем из таблицы "Радиомодули распределенной БС (RRU)" A54:G63 Тип RRU
3. Далее импортируем из таблицы "Антенно-фидерное оборудование" (A102:S108) Электр. наклон, Механич. наклон Вот тут на мой взгляд самое сложное A102:J108.
Рассмотрим строку 103. Так в A103 видим D1,G1,L14,L4,L7. Это разные диапазоны, но в одном азимуте. Они фигурируют в столбце D66 и ниже, а левее есть конкретные диапазоны. Самое интересное начинается с F102. Т.к. данные идут через разделитель (800 | 900 | 1800 | 2100 | 2600) , то и углы (I102 и т.д.) также расписаны(0.0 | 4.0 | 3.0 | 0.0 | 3.0). Вот тут глаза очень часто "обламываются". Тяжело воспринимать, особенно к концу дня.

В итоге хотел бы получить вот такую таблицу (см. аттач), которую читать намного удобнее. А потом на основе этой таблицы сделать форму. Желтым выделил поля, которые присутствуют в Initial_Data_.xlsx. В результате подгрузил данные и фильтруй как хочешь. В общем работай себе в удовольствие не ломая глаза и не бегая за данными по нескольким источникам :)
Буду благодарен за любую помощь. Пока всё тяжко.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638589
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как то так...
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638604
alecko,

Обалдеть. Я два дня голову ломаю. Буду смотреть и разбираться с кодом. Единственное что сразу бросилось в глаза в результатах - не корректные данные по переносу RRU.
В общем огромное спасибо. И позже будут вопросы :)
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638616
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoимпорт .xls в 7-м аксе часто бывает некорректным -его надо контролировать
Что значит некорректным? Если речь о неправильном распознавании типов данных - так и не нужно полагаться на автораспознавание. Я "грязные" данные всегда импортирую в существующую таблицу с текстовыми колонками, а проверки и распознавание уже потом.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638637
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin, нет - порядок нарушен обычно, часть данных которые должны быть в конце - оказываются впереди - часто это критично, поскольку нумерация делается позже. это бывает и само по себе и после сбоя. бывают файлы такие, что прям приходится "ловить" нужный импорт. перешел на открытие эксель как объекта - все как рукой сняло.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638661
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архимедофф, поправил, поиск не по тем полям велся - тип антенны не уникальный и тип MCU/RRU оказывается не то же самое что и тип RRU. зато надеюсь в сторону экселя будете теперь более уверенно смотреть :) Эх, если бы форматирование добавить, вот была бы веселуха (хотя принцип думаю понятен)- и Ваш случай как раз для вдумчивого ковыряния , сплиты, лайки...
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638668
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вникнул в суть объяснения про углы и диапазоны здесь 21380167 , оказывается каждому диапазону соответствует свой угол.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638670
alecko,

Остался последний штрих. Вы для одного Cellid делаете несколько записей, а реально нужна только одна, с правильным эл.углом наклона. Ячейка A103 с данными (D1,G1,L14,L4,L7) .
Так D1 - это диапазон DCS 1800 из ячейки C67.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638673
Вот еще картинка
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638676
alecko,

Опередили меня на пару минут, сейчас посмотрю :)
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638693
alecko,

Как обратиться к ячейки C4 исходного файла?
Хочу дописать проверку в bSave_Click , чтобы выскакивал диалог с предложением, что если данные по такому номеру есть, то выбрать действие: обновить(удалить и записать заново) или ни чего не делать. Хотя, это наверное, правильнее делать на более раннем этапе. И конечно упустил, в таком случае желательно иметь дату, когда данные внеслись в таблицу.

П.С. не пойму, на каком этапе Вы обращаетесь к полю Номер и Номер позиции ? А если надо добавить данные, например Наименование (A6) или Адрес (A7)?
Где то можно посмотреть через Debug.print?
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638704
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архимедофф,
номер строки 61 в модуле класса
Код: vbnet
1.
MassivConst(1) = objsheet.Cells(2, 3): MassivConst(2) = objsheet.Cells(4, 3): MassivConst(3) = objsheet.Cells(5, 3) ' постоянные позиции - для поиска в том числе


сюда добавлены позиции, которые постоянны, а можно сразу в поле рекордсета добавить данные этих ячеек
т.е. добавляете поля в таблицу, если не хватает, и строку 109 модуля класса
Код: vbnet
1.
 .Fields(1) = MassivConst(1): .Fields(2) = MassivConst(2): .Fields(3) = MassivConst(3): 


продолжаете
Код: vbnet
1.
 .Fields(24) = objsheet.Cells(6, 3):  .Fields(25) = objsheet.Cells(7, 3)  ' и так далее


через debug.print можно смотреть везде :) все.
можно по другому: делаем точку останова и в immediate используя оператор print получаем данные нужных переменных, затем можно пройтись по F8 по интересующим строкам
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638705
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архимедоффчто если данные по такому номеру есть, то выбрать действие: обновить(удалить и записать заново) или ни чего не делать. Хотя, это наверное, правильнее делать на более раннем этапе. И конечно упустил, в таком случае желательно иметь дату, когда данные внеслись в таблицу.
в базе 2 таблицы - 1-я куда вносятся данные импорта, пред каждым импортом она очищается 2-я где хранятся данные. проверять можно и во время импорта, однако спрашивать несколько десятков раз -как-то некомильфо
внести дату, в смысле текущую? .fields(27)=Date
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638781
alecko,
Спасибо огромное.
Вот тут Debug.Print воспользоваться не получилось :(
Код: vbnet
1.
2.
3.
4.
5.
6.
     mess = Split(objsheet.Cells(Nomstrok(1), 1), ",") ' получили массив секторов
     ' Debug.Print mess
      Ugol = Split(objsheet.Cells(Nomstrok(1), 9), delimtr) ' массив углов электронных
      diap = Split(objsheet.Cells(Nomstrok(1), 6), delimtr)
      UgolMehan = objsheet.Cells(Nomstrok(1), 12) ' механический угол
      'Debug.Print diap
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638795
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АрхимедоффВот тут Debug.Print воспользоваться не получилось :(

diap--это массив
debug.print diap(0)
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638801
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с праздником! :)
mess - тоже массив, для того чтобы посмотреть - нужно организовать цикл
Код: vbnet
1.
2.
3.
for i=Lbound(mess) to Ubound(mess)
    debug.print mess(i)
next
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638867
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoпорядок нарушен обычно, часть данных которые должны быть в конце - оказываются впереди
Очень интересно. Никогда с таким не встречался, хотя с импортами постоянно работаю и мне также порядок очень важен в большинстве случаев. А куда вы записываете сырые данные? У меня это существующая таблица с ключевым полем с автонумерацией и текстовые поля F1, F2,... Импортируется всегда в порядке строк в экселе.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638889
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin, во вновь создаваемую таблицу - данные имеют разный объем.
такая конструкция.
Код: vbnet
1.
2.
3.
  If IsTableExist(tNam) Then CurrentDb.Execute "DROP TABLE " & tNam

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, tNam, fname, False


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

сейчас перешел на другую схему - в пользовательском интерфейсе создается шаблон импорта -прайса, накладной, комм.предложения счета в обычную таблицу с фиксированным числом столбцов -обработка и перенос в базу.
таким способом, как писал появилась возможность использовать форматирование для выделения группировок в прайсах, например.
p.s. в аттаче образец, что приходит. (не часто, но таки бывает)
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638938
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoво вновь создаваемую таблицу
Ну так ясное дело. Не следует полагаться на "интеллект" TransferSpreadsheet, это верный способ поиметь проблемы. Пользуйтесь этой функцией с большой осторожностью. В данном случае она просто не подходит.
Используйте прямой запрос к файлу типа
Код: sql
1.
2.
3.
4.
INSERT INTO Table1 (Name, PX_Last, USD, Shares) 
SELECT *
  FROM [Sheet1$D3:E24] 
    IN "C:\Temp\Portfolio.xls" [Excel 12.0;HDR=YES;IMEX=0];
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638949
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinaleckoво вновь создаваемую таблицу
Ну так ясное дело. Не следует полагаться на "интеллект" TransferSpreadsheet, это верный способ поиметь проблемы. Пользуйтесь этой функцией с большой осторожностью. В данном случае она просто не подходит.
Используйте прямой запрос к файлу типа
Код: sql
1.
2.
3.
4.
INSERT INTO Table1 (Name, PX_Last, USD, Shares) 
SELECT *
  FROM [Sheet1$D3:E24] 
    IN "C:\Temp\Portfolio.xls" [Excel 12.0;HDR=YES;IMEX=0];

и поимейте ряд других фич и багов...
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638981
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучкаи поимейте ряд других фич и багов..
Например?
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638984
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinПрогер_самоучкаи поимейте ряд других фич и багов..
Например?например, частичная загрузка данных без каких-либо оповещений из-за несовпадения типов данных.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638987
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучканапример, частичная загрузка данных без каких-либо оповещений из-за несовпадения типов данных.
dbFailOnError параметр стоит? Мне все прекрасно сообщает.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638990
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinПрогер_самоучканапример, частичная загрузка данных без каких-либо оповещений из-за несовпадения типов данных.
dbFailOnError параметр стоит? Мне все прекрасно сообщает.да, конечно же стоит.
Кстати, вот он вам сообщил, а дальше что? :)
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638992
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучкавот он вам сообщил, а дальше что?
Какое может быть несоответствие типов, если в таблице все поля текстовые? На соответствие типов проверяется уже потом, в таблице с "сырыми" данными.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39638993
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinПрогер_самоучкавот он вам сообщил, а дальше что?
Какое может быть несоответствие типов, если в таблице все поля текстовые? На соответствие типов проверяется уже потом, в таблице с "сырыми" данными.вы просили пример.
Я вам его показал.
Получается, что и в этом случае нужно пользоваться с осторожностью. Например, таблицу делать с текстовыми полями, чтоб не потерять часть данных по пути.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639004
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогер_самоучкатаблицу делать с текстовыми полями
Да ее в любом случае надо делать с текстовыми полями, вы же не можете знать, что там пользователь наворотил в таблице, если только не давать ему шаблон со всеми проверками и залоченый.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639016
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin, а если обрабатывать придется одновременно 2 файла? (скажем торг-12 и прайс)-чтобы получить штрихкод?
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639120
alecko,
Спасибо. А как возможно вытянуть "Тип антенны" из A112 и ниже?
Кое что понял уже, но пока что сложно с массивами.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639158
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoа если обрабатывать придется одновременно 2 файла?
Да какие проблемы? Обрабатываем по очереди. Сначала, допустим, торг-12 через промежуточную таблицу с текстовыми полями разносим в рабочие таблицы, потом прайс тем же путем с предварительной очисткой промежуточной.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639300
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin,
пока нет кодов в базу разнести не сможете. коды в прайсе.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639347
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoпока нет кодов в базу разнести не сможете. коды в прайсе.
Ну так разнесите сначала прайс :)
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639358
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архимедофф,
1. то что я сделал - это ещё заготовка (треть работы)-теперь хорошо бы все константы которые приняты в этом классе вытащить в отдельную таблицу(таблицы), и сделать переменными - номера столбцов анализируемой таблицы, номера столбцов конечной таблицы, пояснения, и пр.(по скольки буквам искать совпадения(я взял 7), сами наименования блоков данных, данные могут быть на нескольких листах) (я бы рекомендовал сделать одну таблицу с самообъединением-в которой выделил бы блоки данных которые анализируются, начальные данные и пр.), это даст возможность подстраиваться как под изменения в самих таблицах, добавлять новые данные которые нужно вытащить,, ввести новые профили для таблиц другого вида-все это можно вывести на форму в нескольких списках (или treeview использовать). так что для учиться и работать там ещё много осталось.
2.как вытащить все что Вы написали - посмотрите 1-ю часть - там этот блок анализируется, просто поскольку тип антенны не уникален и все нужные данные дублировались в других таблицах - этот блок данных - (MessPoisk(3) = "Блоки у") в других версиях использовать не стал. тип антенны сразу есть в первом блоке данных. анализировать можно как во втором блоке данных. (т.е. берете основной массив с секторами и ищете совпадения: можно через массив, я сделал через like)
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639377
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin,
а зачем мне прайс в базе? он уже есть в экселе, прайс того же самсона за 30 тыс. позиций и меняется постоянно
в моей практике народ, поправив корону на голове в столбце "коды", ничтоже сумняшеся ставит код их внутреннего каталога, который использовать можно только для поиска в прайсе (там тоже есть код каталога, и как правило штрихкоды и артикулы.)- как иначе база распознает товар?
Все предварительные счета приходят только с кодом каталога.
Вообще дискуссия интересная, и очень было бы интересно посмотреть как это сделано у других, у Вас к примеру, показать как это реализовано мной - сильно отлично от 1С. жаль лички нет :(
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639391
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoа зачем мне прайс в базе?
Ну хотя бы для поддержания целостности данных - в остальных таблицах могут использоваться только коды товаров из прайса.

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

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

Если же вы не имеете никакой возможности повлиять на формат данных, получаемых от пользователей, то тут можно только посочувствовать, всегда будете натыкаться на проблемы при импорте.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639470
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinВообще, конечно, нужно сначала смотреть как организованы бизнес процессыеще никому не удалось при неправильной организации создать "конфетку"-что Вы и пытаетесь сделать
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639637
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin, у меня нет проблем с импортом данных :). Причем тут бизнес-процессы я не совсем понял.
даже в случае с DoCmd.TransferSpreadsheet - проблемы решались. прямой запрос не использовал, решил в файлах ковыряться - показалось что это удобнее и стабильнее.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39639638
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoАрхимедофф,
посмотрите 1-ю часть
извиняюсь 1-ю версию конечно же.
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39644636
alecko,
Я дико извиняюсь, но как отключить загрузку формы при запуске приложения? Мозг сломал уже :(
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39644647
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Архимедофф,
кнопка офис>параметры Access>текущая база данных>форма просмотра>выбрать "отсутствует" (искать в сети не пробовали?)
...
Рейтинг: 0 / 0
динамический импорт из excel
    #39644656
sdku,

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


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