Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Импорт из mdb в xls определенным форматом 
:(
    Опции темы
ANDeath
Дата 28.3.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



Подскажите пожалуйста как импортировать запрос из базы Access на лист Excel, определенным форматом:
Пример:
 1) результат запроса в Access выглядит примерно так:
-------------------------------------------------------
|       Тип        |  Наименование  |    Цена   |
-------------------------------------------------------
|      Тип1       |          Имя1          |   Цена1  |
-------------------------------------------------------
|      Тип1       |          Имя2          |   Цена2  |
-------------------------------------------------------
|      Тип2       |          Имя3          |   Цена3  |
-------------------------------------------------------

 2) после импорта надо чтобы было:
-------------------------------------------------------
|                             Тип1                             |
-------------------------------------------------------
|                       Имя1                   |  Цена1  |
-------------------------------------------------------
|                       Имя2                   |  Цена2  |
-------------------------------------------------------
|                             Тип2                             |
-------------------------------------------------------
|                       Имя3                   |   Цена3 |
-------------------------------------------------------
заранее благодарю)
PM MAIL   Вверх
Naghual
Дата 28.3.2007, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Это называется Группировка.
Введи ее в запрос и будет тебе счастье


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Akina
Дата 28.3.2007, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Сделай на основе этого запроса отчет. Задай там групппировку по полю Тип. Откорректируй макет отчета (убери, к примеру, ненужные тебе колонтитулы). Открой отчет, и...

Файл - Экспорт - Формат MS Excel.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ANDeath
Дата 29.3.2007, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



Naghual, это в Access это называется группировка, вопрос в том как это правильно отобразить в Excel...

Akina, отчет такой уже есть, но я не хочу делать "Файл - Экспорт - Формат MS Excel", я хочу чтобы человек открывал файл xsl и у него автоматом выполнялся импорт из запроса или максимум: он нажимал на кнопку и у него формировался результат.

Импорт произвожу методом: Данные/Импорт_внешних_данных/Импортировать_данные, с автообновлением я разберусь, там вроде все наладить можно, но как отформатировать выводимый результат, преведенным выше образом?
PM MAIL   Вверх
Akina
Дата 29.3.2007, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(ANDeath @  29.3.2007,  11:16 Найти цитируемый пост)
я не хочу делать "Файл - Экспорт - Формат MS Excel", я хочу чтобы человек открывал файл xsl и у него автоматом выполнялся импорт из запроса или максимум: он нажимал на кнопку и у него формировался результат.

Слушай, все, что можно сделать руками, можно сделать и програмно. Ну СДЕЛАЙ, ёлки-палки... грузим базу, запускаем макрос, который выполняет экспорт, закрываем базу.

Или ты хочешь ВООБЩЕ НЕ ОТКРЫВАТЬ базу данных? В таком разе никто тебе не мешает подключиться программно при старте к базе, взять требуемые данные и рассовать их по нужным ячейкам.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ANDeath
Дата 29.3.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



Akina, второй вариант... есть примеры? подключиться можно через код или надо создавать "импорт данных"?

p.s.: впринципе можно и первый вариант, но какие объекы надо использовать?

Это сообщение отредактировал(а) ANDeath - 29.3.2007, 13:12
PM MAIL   Вверх
Akina
Дата 29.3.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Конечно через код... что-нить вроде 
Код

Sub GetMyData()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim i As Integer
Dim j As Integer

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDatabase.mdb;"
With rst
    .Open "MyQuery", cnn, adOpenForwardOnly, adLockReadOnly
    .MoveFirst
    For i = 0 To .RecordCount - 1
        For j = 0 To .Fields.Count - 1
            Worksheets("MySheet").Range(Cells(i + 1, j + 1)).Value = .Fields(j).Value
        Next j
        .MoveNext
    Next i
    .Close
End With
cnn.Close
Set rst = Nothing
Set cnn = Nothing
End Sub

И не забудь предварительно в референсах подключить Microsoft ActiveX Data Object Library.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ANDeath
Дата 29.3.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 9.4.2006
Где: Краснодар

Репутация: нет
Всего: нет



Akina, а уточни пожалуйста, как в Excel при запуске выполнить процедуру?

Это сообщение отредактировал(а) ANDeath - 29.3.2007, 14:57
PM MAIL   Вверх
mihanik
Дата 29.3.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Цитата(ANDeath @  29.3.2007,  14:55 Найти цитируемый пост)
как в Excel при запуске выполнить процедуру?


Очень просто.

Добавляешь в модуль процедуру auto_open

Код

Sub auto_open()

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

End Sub



Замечание.
Именно в модуль ( у меня, например в Module1 )
Если вписать макрос в лист, то ничего не получиться...



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.