|
|
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Мне нужно сделать вот какую штуку: Выбрать записи из таблицы Профессии, у которых [Профессия]= xlwProd.Worksheets(1).Cells("B4").Value и [№ ЕТКС]= xlwProd.Worksheets(1).Cells("B6") (результат, наверное, надо будет присвоить recordset через DAO), ну и дальше позаполнять графы Оценка1, Оценка2, Оценка3 из соответствующих ячеек экселевского файла и сохранить изменения таблице. Подскажите как получить нужные записи в рекордсете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 15:35:31 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Если в экселевском файле не слишком много нерегулярностей, то удастся прилинковаться к нему и работать как с таблицей Аксесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 16:00:13 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Владимир СанычЕсли в экселевском файле не слишком много нерегулярностей, то удастся прилинковаться к нему и работать как с таблицей Аксесса. Что значит не слишком много нерегулярностей, и как можно прилинковаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 16:06:26 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
zrumchikЧто значит не слишком много нерегулярностей, и как можно прилинковаться? Прилинковаться - через правый клик в списке таблиц. Но проблема в том, что Эксель - не база данных. У него нет типов полей. Аксесс сам распознаёт типы полей в экселевском файле на основании данных. Но если где-нибудь в колонке, которая по идее содержит числа, юзеры понарисовали всяких нечисловых символов, то эта колонка уже не будет распознана как числовое поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 16:12:08 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Владимир СанычПрилинковаться - через правый клик в списке таблиц. Но проблема в том, что Эксель - не база данных. У него нет типов полей. Аксесс сам распознаёт типы полей в экселевском файле на основании данных. Но если где-нибудь в колонке, которая по идее содержит числа, юзеры понарисовали всяких нечисловых символов, то эта колонка уже не будет распознана как числовое поле. C типом данных всё будет нормально. Мне главное получить нужный набор записей рекордсете, а как это как сделать - не знаю. Ведь при содании SQL запроса нельзя ссылаться на ячейки рабочей книги экселя, или можно? Плюс ко всему в другом случае параметры отбора записей находятся на разных страницах, так что как прилинковаться к целой книге, а не к листу я вообще не понимаю. Да и что такое "прилинковаться" я тоже не сильно понял. Саныч, расскажи поподробней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 16:20:04 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Я имел в виду создать прилинкованную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 16:28:08 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Саныч, так там структура таблицы корявая, и из-а этого будут проблемы с типом данных: в одном столбце там находится и числа, и текст, и данные, и заголовки... хотя это лучше чем ничего. Придётся потом бегать по записям, писать кучу запросиков, чтобы выцепить нужную ячейку в таблице. Есть ещё вопросы: как сделать всё тот же запрос на отборку записей из таблицы Профессия, где в качестве параметров будут данные прилинкованных таблиц. А можно ли содавать прилинкоавнные таблицы программно, вставив в форму аналог стандартной виндовской кнопки "Обзор..."? И кроме прилинкованных таблиц нет другого метода провернуть эту штуку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 16:53:08 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Создал прилинкованную табличку. Попез! На тех местах, где встречаются цифры в текстовых полях он пишет #Число! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 16:55:44 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Подстрогай руками свою табличку или OLE-оле-олеоле:-) в смысле Excel.Application ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 16:59:23 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Думаю сделать так: данные из экселевских файлов добавлю в какую-нибудь временную таблицу. Потом обновлю нужную таблицу с помощью данных из временной, и сотру временную. Осталось написать запрос на обновление, который бы делал вот что: Брал первую запись таблицы Временная, фиксировал там значение столбца "Выполняемая работа" - параметр А , выбирал все записи из таблицы Обновляемая с условием Выполняемая работа = А и переносил данные из первой записи таблицы Временная (столбцы Оценка1, Оценка2, Оценка3) в выбранные записи таблицы Обновляемая (столбцы Оценка1, Оценка2, Оценка3). Затем надо перейти ко второй записи таблицы Временная и повторить всю эту хню, и так до конца таблицы Временная. Как будет выглядеть SQL запрос, делающий это?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 17:21:05 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
SharkПодстрогай руками свою табличку или OLE-оле-олеоле:-) в смысле Excel.Application Таких таблиц тут дофига, и каждую ручками обрабатывать... Хочется чтобы всё это делалось программно и надо было только указать имя файлика, данные которого нужно импортировать. А как сделать через Excel.Application? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 17:24:42 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 17:31:07 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Витал Код: plaintext 1. 2. 3. 4. А если несколько параметров, т.е. Профессия = А4 и Организация = В5 ? Куда в такой конструкции присобачить and? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 17:38:10 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Set rs = CurrenDB.Openrecordset("Select * from Table1 Where [Профессия]= " & wbk.WorkSheets("Отчет").Range("A4").Value & " And [Организация ]= " & wbk.WorkSheets("Отчет").Range("В5").Value) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 17:46:47 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо Витал, спасибо Саныч! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 17:52:49 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Как вставить в форму кнопку "Обзор" (Browse), что бы вручную выбирать открываемый файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 11:36:08 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
1 написать "обзор" можно на любой кнопке 2 специальной кнопки обзор(целевой) не существует 3 код подкладываемый под любую кнопку с надписью "обзор" зависит от версии Access - 2000/2002/2003 - делать легче(для mdb прототип выглядет вот так)+ поищи по конфе по слову FileDialog Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 12:24:57 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Shuhard1 написать "обзор" можно на любой кнопке 2 специальной кнопки обзор(целевой) не существует 3 код подкладываемый под любую кнопку с надписью "обзор" зависит от версии Access - 2000/2002/2003 - делать легче(для mdb прототип выглядет вот так)+ поищи по конфе по слову FileDialog Спасибо за код и за то, что понял мой вопрос. =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 13:03:31 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Ну я совсем чайник, подскажите что делать. ошибка type mismatch на такой строке: rs.Fields(0) = xlwProd.Worksheets(1).Cells("B4") в экселевском файле на этом месте написано "Кузнец". Пробовал поменять строку на rs.Fields(0)= "Кузнец" - всё работает. А тут чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 15:10:52 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
rs.Fields(0) = xlwProd.Worksheets(1).Cells(2,4) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 15:23:49 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
в примерах тебе писали Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 15:25:20 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Ещё раз спасибо за помощь и терпение! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 15:43:53 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Сейчас просто взвою волком. ДАнные читать стал, а цикл вовремя остановить не хочет! Пишу: Код: plaintext 1. 2. 3. 4. Как можно эту штуку заставить остановиться? Т.е. как определить, что ячейка, к которой он обращается пустая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 16:29:02 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
http://www.sql.ru/faq/faq_topic.aspx?fid=213 вопрос 19, ответ 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 16:42:43 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Do Until IsNull(xlwProd.Worksheets(2).Cells(RowNumber, 1).Value) = True Написал такую штуку, тоже не работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 16:57:33 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
1. = True можно не писать. 2. Может, оно не Null? Какое значение возвращает программа вместо Null? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 17:09:52 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
В теле цикла стоит rs.Fields(2) = xlwProd.Worksheets(2).Cells(RowNumber, 1).Value прерываю цикл (на 246 записи, хотя должно из быть олоко 20ти) после выполнения этой строчки, подвожу мышой пишет: rs.Fields(2)= Null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 17:26:54 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
?xlwProd.Worksheets(2).Cells(RowNumber, 1).Value на такой сокровенный вопрос Immediate отвечает пустой строкой... может поставить условие: do untill xlwProd.Worksheets(2).Cells(RowNumber, 1).Value ="" ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 17:32:40 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
zrumchik может поставить условие: do untill xlwProd.Worksheets(2).Cells(RowNumber, 1).Value ="" ?? Сработало =) Получается, что у Excelя нет значения Null? Или какое-то своё значение пустой ячейки, так что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 17:35:40 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Это значит, что значение этих ячеек = "". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 17:41:13 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
И снова тот запрос. Сделал, как вы предложили, выдал ошибку: Ошибка синтаксиса (профушен оператор) в выражении запроса '[Профессия]= Слесарь - сантехник AND [Выполняемые работы]= Комплектование сгонов муфтами и конртгайками, болтов - гайками' Строка выглядит вот так (без переноса строки): Код: plaintext 1. Что ему не нравится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 18:34:59 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Кавычки вокруг стрингов. Set rs = db.OpenRecordset("SELECT * FROM ПрофРаботыЕТКС WHERE [Профессия]= ' " & xlwProd.Worksheets(1).Cells(4, 2).Value & " ' AND [Выполняемые работы]= ' " & xlwProd.Worksheets(2).Cells(RowNumber, 1).Value) & " ' " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2004, 18:49:20 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Shuhard1 написать "обзор" можно на любой кнопке 2 специальной кнопки обзор(целевой) не существует 3 код подкладываемый под любую кнопку с надписью "обзор" зависит от версии Access - 2000/2002/2003 - делать легче(для mdb прототип выглядет вот так)+ поищи по конфе по слову FileDialog Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Блин, дома стоит Access 2002 и Office 10.0 (ам всё работало), а на работе Access 2000 u Office 9.0. Пры выполнении этого кода выдаёся ошибка "User defined type is not defined" на строке: dim mydial as office.filedialod Чего тут надо поменять, что бы работало по 2000, и будет ли новый код ратотать под 2002? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 13:55:16 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Извини родной, но FileDialog(msoFileDialogOpen) и в 2000 и 2002 не пашет, обломись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:04:10 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
В 2002 должен работать, ведь дома я проверял =) А если эта штука не работает, то как вызвать такое окошко? Не будет же юзверь каждый раз вручную прописывать в поле путь к файлу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:09:17 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
WinApi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:11:56 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
ProgaWinApi Я вообще с Аксесом познакомился две недели назад, а ты такие умные вещи говоришь =)) Я понятия не имею, что это такое. Может подкинешь код, который я бы прописал в саб Кнопка1_Клик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:14:02 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
надо зайти в references(ссылки) - в любом модуле VBA tools- и подключить нужную версию библиотеки автор 'подключить Microsoft Office XX Object Library я сознательно писал XX - у меня 10 а у тебя вероятно 9 отключи "битую" подключи реальную 2 Proga Извини родной, но FileDialog(msoFileDialogOpen) и в 2000 и 2002 не пашет, обломись это не так не работает ...Save - работает ...Open ключи схожи но не тождественны! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 15:13:53 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
2 Shuhard: я сталкнулся с этим и долго бился пока великий ищ не проконсультировал, так что не надо 2003 и точка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 15:43:42 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
Хотя может ты и прав разговор был об Save. Надо проверить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 15:44:54 |
|
||
|
Обновление таблицы при импорте из Excel
|
|||
|---|---|---|---|
|
#18+
А библиотека не подключается. Я убираю галочку у 9-ой, Browse... указываю файл 10-й, ставлю галочку, жму Ок. Снова открываю это окошко, а он сам поменял 10-ю на 9-ю библиотеку... Подскажите что сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2004, 12:40:05 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1673086]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 352ms |

| 0 / 0 |
