![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Private Sub Кнопка139_Click()
Dim ExcelApp As Object, ExcelWorkbook As Object, ExcelSheet As Object Set ExcelApp = CreateObject("Excel.Application") 'ExcelApp.Workbooks.Add ExcelApp.Workbooks.Open "C:\Ocenka\Ocenka.xls" Set ExcelWorkbook = ExcelApp.Workbooks(1) Set ExcelSheet = ExcelApp.Workbooks(1).Worksheets(1) With ExcelSheet Здесь надо вставить код, чтобы в ячейки в Excel вставлялись данные из баззы Access'а. Вот что только не перерыл ответа так и не нашел. Были варианты, но они не подходят. ExcelApp.Visible = True WorkBook.Close SaveChanges:=False Set WorkBook = Nothing AppExcel.Quit Set AppExcel = Nothing End Sub |
|||
|
||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Неужели никто не подскажет. Я вообще не программировал в Access. Програмил в других. А тут по работе надо access-овскую прогу подредактировать.
|
|||
|
||||
Юдифь |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 15.10.2006 Где: Монголия, Эрдэнэт Репутация: нет Всего: нет |
Не знаю, может тебе уже не нужно, но вот пример:
|
|||
|
||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Пишет Compile Error: Invalid or unqualified reference и ссылается на строчку: .ActiveSheet.Cells(k, i + 1).Value = rstSpis.Fields(i).Value именно на .ActiveSheet
Добавлено @ 05:39 в чем трабл? |
|||
|
||||
dionisiu |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: 1 Всего: 2 |
||||
|
||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Ну это и дураку понятно, что End With добавить надо
![]() Добавлено @ 04:30 Так кто-нибудь подскажет почему ошибка вылазит? Заранее благодарен! |
|||
|
||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Как то нелогично получается:
строка ".ActiveSheet.Cells(k, i + 1).Value ..." с учетом with выглядит так: "ExcelSheet.ActiveSheet.Cells(k, i + 1).Value ...." т.е. "лист.лист.ячейка" я бы тоже ругался, т.к. (помойму) ActiveSheet определен только у Workbook Итого, нужно так ".Cells(k, i + 1).Value ...." Это сообщение отредактировал(а) bopoha - 4.2.2007, 15:26 |
|||
|
||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Все равно ругается на эту строку
![]() |
|||
|
||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Тогда кинь БД с этой функцией и табличкой посмотрим. Никогда с подобной ошибкой не встречался.
|
|||
|
||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
http://rapidshare.com/files/15152757/Ocenka.rar.html - Здесь всё. Экспорт в Excel Кнопка 160
|
|||
|
||||
bopoha |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Код должен выглядеть так:
Почему не работало: rstSpis.Fields.Count - количество элементов, а не максимальный индекс! Поэтому элемента с номером rstSpis.Fields.Count нет. Вот и ругалось. И еще ты забыл переходить на следующую запись: rstSpis.MoveNext. И еще: Объяви в начале модуля директиву Option Explicit. Она требует явного описание всех переменных. rstSpis нигде не объявлена. Чуть ошибешся в имени и можешь очень долго искать ошибку. По поводу отладки: Очень удобно пользоваться Immediate Window (Ctrl + G). Там в режиме отладки можно проверять различные выражения на работоспосоность. Например: ?ExcelSheet.Cells(k, i + 1).Value - это заработало ?rstSpis.Fields(i).Value - это нет, значит ошибка тут! Обработка полей, так удобней - не ошибешся:
ЗЫ: Тяжело было скачивать с рапиды. Целый день парился. В след раз просто прикрепляй к сообщению файлик. |
||||
|
|||||
shurrik |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Спасибо! Большое! Заработало! С меня бутылка ![]() Теперь нужно, чтобы этот отчет формировался по заданному месяцу и году. Можно ли как нибудь сделать это через запрос или без него? Запрос есть: Format([Принадлежность];"mm.yyyy") С помощью него формируется отчет Access'овский. Как это реализовать в коде для Excel? Заранее благодарю |
||||||
|
|||||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Цель: Вывести в заголовок Экселевского документа название отделения из базы Access.
Что получилось: В Excel выгрузить получилось. Не получилось: Выбирать отделение в форме "Настройка" приходится два раза. В файле, который я выложил, т.е. в самой форме "настройка", только одно выпадающее меню. При выборе отделения (используется таблица Подразделения), в таблицу "Локальная настройка" заносится только kod, а столбец Name остается пустым. Создаю второе выпадающее меню и таблицу "Отделение". Теперь заносится и название, но в таблицу "Локальная настройка" и "Отделение" (созданая уже мною дополнительно). Но теперь приходится выбирать и в первом меню и во втором одно и то же отделение, что конечным пользователям будет неудобно. Как все сделать, используя одно меню? Что я только не делал ничего не получается. А ведь по любому дело в какой-то мелочи. Ниже привел код. Для выпадающего меню 1: В конструкторе -> Данные -> Источник строк: SELECT Подразделения.kod, Подразделения.Name FROM Подразделения ORDER BY [kod]; Данные: kod Тип источника строк: Таблица или запрос Для выпадающего меню 2: В конструкторе -> Данные -> Источник строк: SELECT Подразделения.Name FROM Подразделения ORDER BY [Name]; Данные: Name Тип источника строк: Таблица или запрос Код нажатия кнопки в форме "Настройка": CurrentDb.TableDefs("Оценка").Fields("Код филиала").DefaultValue = [Forms]![Настройка]![ПолеСоСписком0] CurrentDb.TableDefs("Отделение").Fields("Name").DefaultValue = [Forms]![Настройка]![ПолеСоСписком7] |
|||
|
||||
bopoha |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Я не понял проблемы! Необходимо формировать запрос или на основании хранимого запроса с параметрами открывать Recordset и в путь... Добавлено @ 01:14
Брррр... ничего не понятно... но вобщем начнемс. 1. Хочешь, чтобы ты разобрался потом и тебя поняли? ПолеСоСписком0 и ПолеСоСписком7 не понятно про что. Обзывай как, напрмер, поля данных с префиксом... хоть понятней будет
Это же относится к меню 1 и меню 2. 2. Я так понял задачу: необходимо записать значение в поле, на основании выбранного значения из поля со списком. Решается это так:
Делается это на событии "посел обновления" поля P_Source. |
||||||
|
|||||||
shurrik |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
На основании хранимого запроса.
Да, вы правильно поняли задачу. На всякий случай прикрепил файлик программы с моими меню 1 и 2. Я вообще не программирую в Accesse, но по работе приходится. Желательно, чтобы записывалось в таблицу "Локальная настройка" или в отдельную таблицу. И вообще не пойму каким образом данные (в колонку kod) заносятся в таблицу "Локальная настройка"? Может я чего-то не туда смотрю или упускаю? Это сообщение отредактировал(а) shurrik - 12.7.2007, 09:22 |
||||
|
|||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Вторая часть архива
Добавлено @ 08:25
Можно вот с этого места подробнее? Это сообщение отредактировал(а) shurrik - 12.7.2007, 09:22 |
|||
|
||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Не удержался и переименовал поля:
ПолеСоСписком0 - P_Podrazdeleine ПолеСоСписком7 - P_Shapka Вобщем необходимо добавить событие для поля P_Podrazdeleine "После обновления". Код получился такой:
Что он делает: присваивает значение 2-й колонки из выбранной строчки в поле P_Podrazdeleine полю со списком P_Shapka, а отсюда значение попадает прямо в таблицу. |
|||
|
||||
shurrik |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Спасибо! Пошло. А как сформировать отчет в Excel за выбраный период с помощью запроса? (Я уже спрашивал раньше :-)) А есть какие нибудь статьи по экспорту в Excel? (например, закрашивание ячеек и т.п.) Можешь ссылки кинуть? |
||||
|
|||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Есть какие-нибудь идею по предыдущему сообщению?
|
|||
|
||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Товарищи программисты, неужели нету никаких мыслей? Подскажите
![]() |
|||
|
||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Есть, вроде. я код на форуме выкладвывал, поищи. Или в ya.ru и google.com.
|
|||
|
||||
shurrik |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.1.2006 Репутация: нет Всего: нет |
Можешь ключевые слова подсказать? А то я везде искал и ничего не нашел
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS Access" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS Access | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |