Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Пакет Microsoft Office

  Все выпуски  

RusFAQ.ru: Пакет Microsoft Office


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Помощь пользователю ПО / Пакет Microsoft Office

Выпуск № 605
от 03.04.2008, 11:35

Администратор:Ерёмин А.А.
В рассылке:Подписчиков: 414, Экспертов: 89
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 129546: Здравствуйте эксперты. Дали задание по Экселю, рылся в справке, что-то ничего не нашел. 1) Обьясните как делать запросы. 2) Что значит связать одну таблицу с другой? Как это делается? Задание из которого у меня возникли эти...

Вопрос № 129.546
Здравствуйте эксперты.
Дали задание по Экселю, рылся в справке, что-то ничего не нашел.

1) Обьясните как делать запросы.
2) Что значит связать одну таблицу с другой? Как это делается?

Задание из которого у меня возникли эти вопросы в приложении..

Приложение:

Отправлен: 29.03.2008, 10:16
Вопрос задал: Вячеслав Шинкаренко (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: megaloman
Здравствуйте, Вячеслав Шинкаренко!
Никогда не думал, что из Эксела можно сделать запрос к таблице Эксела. Так что учимся делать вместе!
Для определенности создадим на диске E: папку Delete. Сохраним там две таблицы:
1. Читатели.xls -Там на листе Reader в столбце начиная с клетки A1 поместим заголовок столбца (Читатель) и имена (в общем случае Фамилии И.О., я ограничился именами для краткости)- см. приложение.

2. Выдача книг.xls -Там на листе Komu в столбцах начиная со строки 1 с клетки A1 поместим заголовоки столбца и соответственно в столбцах наименования книг, когда выдана, кому - см. приложение.
Следует заметить, что один и тот же читатель в этих двух таблицах должен поминаться строго одинаково.

*****
Закроем все таблицы. Откроем чистую книгу. Станем на клетку A1.
Данные-Импорт внешних данных-Создать запрос(должна стоять птичка Использовать мастер запросов) -Файлы Excel-ОК-Диски E:, каталоги Delete, имя базы выбрать Читатели.xls -OK
- Параметры - Отображать -поставить все птички (4 шт)-ОК -Увидите в окошке Имеющиеся столбцы и таблицы + Reader$ - Кнопкой > перенесете Столбцы запроса (у нас только один - Читатель)-
-Далее-Далее-Далее до окна заключительный шаг-Сохранить запрос- Запрос из Файлы Excel 0.dqy - Сохранить -
-Вернуть данные в Excel - Готово

Станем на клетку C1. Проделаем аналогичные манипуляции с книгой Выдача книг.xls, запрос сохраним под именем Запрос из Файлы Excel 00.dqy
На листе получили выборки из двух таблиц, что нам, в принципе и не нужно - основной итог этих действий - мы сохранили два запроса, используя которые "на запчасти", чтобы не напутать в синтаксисе команды, создадим свой запрос.
В принципе, приведенный мной этот этап (между *****) можно пропустить, но я счел нужным его привести, чтобы для других аналогичных задач использовать эту методику с минимальными затратами на отладку синтакса.

Закрываем эту книгу, открываем чистую, Станем на клетку A1.
Данные-Импорт внешних данных-Создать запрос(Не должна стоять птичка Использовать мастер запросов)-Запросы-Открыть-Запрос из Файлы Excel 0.dqy
Кнопка SQL - В окне Инструкция SQL помечаем и копируем в буфер (CTRL/C) все что там есть:
SELECT `Reader$`.Читатель
FROM `E:DeleteЧитатели`.`Reader$` `Reader$`
Отмена. Закроем окно Запрос из Файлы Excel 0.dqy. -должно остаться пустое окно Microsoft Query
Файл - Открыть запрос - Запрос из Файлы Excel 00.dqy
Кнопка SQL - В окне Инструкция SQL вставляем из буфера перед имеющимся запросом (CTRL/V) ранее скопированный кусок:

SELECT `Reader$`.Читатель
FROM `E:DeleteЧитатели`.`Reader$` `Reader$`

SELECT `Komu$`.`Наименование книги`, `Komu$`.`Когда выдано`, `Komu$`.`Кому выдана`
FROM `E:DeleteВыдача книг`.`Komu$` `Komu$`

*****

А вот теперь из этого текста скомпануем свой запрос,используя имеющееся как "запчасти", который и решит нашу задачу:
В окне оставляем только полученный запрос:

SELECT `Reader$`.Читатель, Count(`Komu$`.`Кому выдана`) AS 'Количество книг'
FROM `E:DeleteВыдача книг`.`Komu$` `Komu$`, `E:DeleteЧитатели`.`Reader$` `Reader$`
WHERE `Reader$`.Читатель = `Komu$`.`Кому выдана`
GROUP BY `Reader$`.Читатель
ORDER BY `Reader$`.Читатель

Здесь функция Count подсчитывает, сколько раз каждый из Кому выдано фигурирует в таблице.
GROUP BY отвечает за группировку данных по Читатель
ORDER BY отвечает за то, чтобы результат выводился по алфавиту по столбцу Читатель

Файл - вернуть данные в Excel. Получим искомый результат.
Сохраним таблицу под каким-нибудь именем (Rezult.XLS), выйдем из нее, зайдем заново, станем на A1. Полученные данные на месте! Запомним, сколько у Саша книг.

Откроем книгу Выдача книг.xls. Выдадим Саша еще одну книгу. Сохраним таблицу Выдача книг.xls - Выйдем из нее.
В книге Rezult.XLS - Данные - Обновить данные -получим актуальные данные, сколько кому книг выдано.

Задача, как она поставлена, решена. Но очевидно, не все так хорошо в постановке: я специально в таблице Читатели не помянул читателя Петруччо, а в Выдаче книг выдал ему книгу.
В Rezult его нет.
Я бы обошелся одной таблицей и запрос написал бы следующим образом:

SELECT `Komu$`.`Кому выдана`, Count(`Komu$`.`Наименование книги`) AS 'Количество книг'
FROM `E:DeleteВыдача книг`.`Komu$` `Komu$`
GROUP BY `Komu$`.`Кому выдана`
ORDER BY `Komu$`.`Кому выдана`

Приложение:

---------
Нет времени на медленные танцы

Ответ отправил: megaloman (статус: Студент)
Ответ отправлен: 30.03.2008, 13:40
Оценка за ответ: 5
Комментарий оценки:
Вон как это делается оказывается..
Большое спасибо. Сейчас буду пытатся..


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.72.6 beta от 22.03.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное