Сортировка данных access. Фильтрация, сортировка и поиск данных в Microsoft Access

Сортировка данных access. Фильтрация, сортировка и поиск данных в Microsoft Access

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

В этой статье объясняется, как сортировать записи при просмотре и разработке таблицы, запроса, формы или отчета.

В этой статье

Введение

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

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

Примечание: Представление можно сортировать по любому полю, которое отображается в представлении, за исключением полей, содержащих вложения или объекты OLE.

Чтобы настроить результаты, можно выполнить сортировку записей по нескольким полям. При сортировке по нескольким полям важно определить, что называется самым внешним и внутренним полями сортировки. Чтобы получить нужные результаты, необходимо указать соответствующие поля в качестве внутренних и внешних полей сортировки. В качестве примера предположим, что вы хотите отсортировать таблицу контактов в полях FirstName и LastName. Если вы хотите, чтобы первые имена были отсортированы от А до Я (или от Я до А) внутри каждого фамилии, то имя является самым внутренним полем. С другой стороной, если вы хотите, чтобы последние имена были отсортированы внутри каждого имени, фамилия - это самое внутреннее поле. Другими словами, записи сортируются первыми (самые дальние) в поле "Фамилия", а затем в поле "имя" нажмите Next (внутренняя).

1. фамилия - это самое внешнее поле, а FirstName - самое внутреннее поле.

2. имя - это самое внешнее поле, а LastName - самое внутреннее поле.

Обратите внимание на то, что при применении порядка сортировки числа, текст и специальные символы сортируются в соответствии с выбранным языком и региональными параметрами компьютера. Если языковые и региональные параметры, указанные в диалоговом окне " Параметры Access ", не соответствуют ожиданиям, возможно, итоговые заказы на сортировку не соответствуют ожидаемым.

Проверка или изменение языка или региона, используемого по умолчанию

Чтобы проверить параметры языка в Access, нажмите файл _гт_ Параметры . На вкладке Общие в разделе Создание баз данных проверьте или измените значение в поле со списком порядок сортировки базы данных . Установите параметр Общие , если вы хотите использовать один из этих языков: африкаанс, албанский, арабский, баскский (Баскский), болгарскИй, британский, итальянский, английский, Фаероесе, индонезийский, немецкий (стандартный), Греческий, иврит, хинди, отличный от друга. Португальский, Русский, Сербский, суахили и урду. Обратите внимание, что этот параметр влияет только на новые базы данных. Чтобы применить этот параметр к существующей базе данных, сначала необходимо Сжать базу данных.

Чтобы сжать базу данных:

    Выберите Инструменты для работы с базами данных _гт_ Сжатие и восстановление базы данных .

Сведения о том, как ознакомиться с региональными параметрами вашего компьютера, см. в разделе Изменение региональных параметров Windows для изменения внешнего вида некоторых типов данных .

Сортировка записей в представлении

Примечание: В Access сортировка отчета немного отличается от сортировки таблицы, запроса или формы.

Сортировка отчета

    Откройте отчет в режиме макета или конструктора.

    Если область не открыта, в группе Группировка _амп_ итогов (на вкладке Формат в режиме макета или на вкладке конструктор в режиме конструктора) нажмите кнопку Группировать _амп_ сортировка .

    Выполните одно из указанных ниже действий.

    • Если отчет не содержит группировки и сортировки, нажмите кнопку Добавить группу в области Группировка, сортировка и итоги , а затем выберите самое внешнее поле сортировки. Щелкните стрелку рядом с кнопкой раскрывающегося списка и выберите способ упорядочения значений. Нажмите кнопку Дополнительно , а затем щелкните стрелку справа от раздела верхний колонтитул и выберите пункт без раздела заголовка . Повторите эти действия для каждого поля сортировки, в нижней части которого находится поле для сортировки.

      Если отчет уже сгруппирован или отсортирован, проверьте существующие уровни и внимательно внесите изменения. Чтобы изменить поле, используйте первую стрелку раскрывающегося списка. Чтобы изменить порядок, щелкните стрелку раскрывающегося списка. Чтобы изменить уровень группировки на только уровень сортировки, замените раздел заголовка на без раздела заголовка .

Совет: Чтобы отсортировать отчет по одному полю, откройте отчет в режиме макета, щелкните правой кнопкой мыши поле и выберите нужную команду Сортировка. Например, если выбрать поле возраст, выберите вариант Сортировка от минимального к максимальному или Сортировка от максимального к минимальному . Но если отчет сгруппирован или вы хотите отсортировать данные по нескольким полям, необходимо использовать область Группировка, сортировка и итоги .

Сортировка таблицы, запроса или формы

Помните, что вы не можете удалить порядок сортировки только из одного поля. Чтобы отменить сортировку по всем полям сортировки, на вкладке Главная в группе Сортировка _амп_ фильтр нажмите кнопку Очистить все сортировки , а затем примените нужные порядок сортировки.

Дополнительные сценарии сортировки

При использовании команд сортировки тип данных поля и полные значения каждого поля используются для определения порядка записей. Но что делать, если вы хотите, чтобы текстовые значения (например, понедельник, вторник и т. д.) были отсортированы в настраиваемом порядке, а не в алфавитном порядке? Или вы хотите отсортировать текстовое поле, содержащее IP-адреса? Если команды сортировки не соответствуют требованиям сортировки, см. следующие статьи:

Удаление порядка сортировки

    Чтобы удалить порядок сортировки из таблицы, запроса или формы, на вкладке Главная в группе Сортировка _амп_ фильтра нажмите кнопку Очистить все .

    Порядок сортировки будет удален из всех полей представления.

    Чтобы удалить порядок сортировки в отчете, откройте область Группировка , сортировка и итоги , выбрав команду Сортировка в группе Группировка _амп_ группировки (на вкладке Формат в режиме макета на вкладке конструктор в режиме конструктора). Затем выберите уровень сортировки, который вы хотите удалить, и нажмите кнопку Удалить . Запись, соответствующая полю сортировки, будет начинаться с слов Sort by . Не удаляйте записи, которые начинаются с Group By , так как это приведет к изменению макета отчета.

Сохранение порядка сортировки с помощью объекта

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

Поскольку последний примененный порядок сортировки меняется со времени на время, может потребоваться задать постоянный порядок сортировки (или значение по умолчанию). Вы можете указать порядок сортировки по умолчанию для запроса или отчета. Важно отметить, что несмотря на то, что порядок сортировки по умолчанию не перезаписывается текущим или последним сохраненным порядком сортировки, он применяется только в том случае, если в представлении удаляется текущий или последний порядок сортировки.

Чтобы просмотреть записи, отсортированные в порядке сортировки по умолчанию, на вкладке Главная в группе Сортировка _амп_ фильтра нажмите кнопку Очистить все . Это приведет к удалению текущего или последнего фильтра из представления и позволяет просматривать записи в порядке, заданном по умолчанию.

Теперь определим структуру отчета, задавая условия группировки и сортировки записей. Эти условия задаются в диалоговом окне Сортировка и группировка (Sorting and Grouping), которое появляется при нажатии кнопки с таким же названием на панели инструментов.

Чтобы создать группу, нужно задать поле отчета, по которому будут группироваться записи, и установить значения свойств Заголовок группы (Group Header) и Примечание группы (Group Footer) равными Да (Yes). Первый уровень группировки в нашем примере будет определяться полем "Название Клиента " (Company-Name). Выберите это поле из раскрывающегося списка в первой строке окна Сортировка и группировка (Sorting and Grouping). Поле справа в этой строке, определяющее порядок сортировки, будет по умолчанию иметь значение По возрастанию (Ascending). Установите значения свойств Заголовок группы (Group Header) и Примечание группы (Group Footer) в Да (Yes). После этого в области выделения первой строки (в окне) появится символ группировки, а в отчете будут отображены два раздела: Заголовок группы "Название " (CompanyName Header) и Примечание группы "Название " (CompanyName Footer).

Второй уровень группировки будет организован по полю "КодЗаказа " (OrderlD). Заполните аналогичным образом его свойства в окне Сортировка и группировка (Sorting and Grouping).

Кроме того, что мы задали два уровня группировки для нашего отчета, можно еще определить порядок сортировки в пределах самой внутренней группы. В третьей строке окна Сортировка и группировка (Sorting and Grouping) выберите поле "Марка" (ProductName), чтобы отсортировать товары в заказе по алфавиту. После этого отчет примет вид, показанный на рис. 10.19.

Уровень группировки по полю "КодЗаказа" оказался вложенным. И таких уровней вложенности в Access 2002 может быть до 10.

Для каждой группы, кроме свойств Заголовок группы (Group Header) и Примечание группы (Group Footer), которые позволяют вставлять в отчет дополнительные разделы, можно задать еще три свойства: Группировка (Group On), Интервал (Group Interval) и Не разрывать (Keep Together).

Свойства Группировка (Group On) и Интервал (Group Interval) связаны между собой и в совокупности определяют, каким образом мы хотим группировать данные. Значения, которые может принимать свойство Группировка (Group On), зависят от типа данных группирующего поля. Обычно данные группируются по каждому значению поля, т. е. каждому значению поля должна соответствовать отдельная группа. Тогда свойство Группировка По полному значению (Each Value), а значение свойства Интервал (Group Interval) должно быть равным 1. В нашем примере для поля "Название" установите эти свойства именно так.

При группировке по полю с текстовым содержимым допускается начинать новую группу всякий раз, когда изменится первый или несколько первых символов значения поля. В этом случае свойство Группировка (Group On) должно иметь значение По первым знакам (Prefix Characters), а свойство Интервал (Group Interval) будет определять, сколько первых символов должно использоваться для образования новой группы. Если это значение равно 1, то для каждой буквы алфавита будет создана Сдельная группа - это позволяет создавать отчеты типа Предметного указателя в книгах. Примером такого отчета является отчет "Список товаров " (Alphabetical List of Products) в базе данных "Борей" (Northwind ).

Рис. 10.19 . Структура отчета и условия сортировки и группировки

Для числового поля "КодЗаказа " (OrderID) мы оставляем значение свойства Группировка (Group On) равным По полному значению (Each Value), как это установлено по умолчанию. Значение свойства Интервал (Group Interval) останется равным I, т. к. нам нужно создать отдельную группу для каждого заказа. Однако свойство Группировка (Group On) позволяет группировать числовые данные и по диапазонам значений. В этом случае нужно установить значение данного свойства равным Интервал (Interval), а значение свойства Интервал (Group Interval) равным числу, которое определяет диапазон группировки. Например, если числовое поле содержит возраст человека, то значение 5 свойства Интервал (Group Interval) будет определять диапазоны возрастов от 0 до 4, от 5 до 9, от 10 до 14 и т. д.

Для поля типа Дата/время свойство Группировка (Group On) кроме значения по умолчанию По полному значению (Each Value) может принимать следующие значения: По годам (Year), По кварталам (Qtr), По месяцам (Month), По неделям (Week), По дням (Day), По часам (Hour), По минутам (Minute). Значение свойства Интервал (Group Interval) определяет число выбранных единиц измерения в диапазоне. Например, если значение свойства Группировка (Group On) установлено равным По месяцам , а Интервал (Group Interval) имеет значение 1, то данные будут группироваться помесячно.

Свойство Не разрывать (Keep Together) позволяет управлять тем, как группа будет, размещаться на странице. Если группы небольшие, то лучше всего установить значение этого свойства равным Вся группа (Whole Group). Тогда при печати отчета вся группа, т. е. заголовок группы, все записи из области данных и примечание группы будут размещаться на одной странице (если вся группа не помещается на текущую страницу, она продолжится со следующей страницы), а каждая следующая группа будет начинаться с новой страницы (если только она не помещается целиком на текущей странице). Если группа может содержать столько данных, что они не поместятся на одной странице, то лучше установить значение этого свойства равным С первыми данными (With First Detail). В этом случае заголовок группы размещается на текущей странице, только если на ней помещается также первая строка данных, в противном случае вся группа переносится на следующую страницу.

Свойство Не разрывать (Keep Together) для группы связано с аналогичным свойством раздела отчета. Эти свойства должны быть согласованы. Например, если в группе установлено значение свойства Не разрывать (Keep Together) равным Вся группа (Whole Group), то значения свойства Не разрывать (Keep Together) соответствующих разделов отчета должны иметь значения равными Да (Yes). В противном случае приоритет имеет свойство, заданное в окне Сортировка и группировка (Sorting and Grouping).

Сам отчет также имеет свойство Неразрывная группа (Grp Keep Together), которое применяется для отчетов, печатающихся в несколько колонок. Оно действует только для групп, у которых значение свойства Не разрывать (Keep Together) установлено равным Вся группа (Whole Group) или С первыми данными (With First Detail). Если же установлено значение Нет (No), то свойство Неразрывная группа (Grp Keep Together) игнорируется. Данное свойство отчета может иметь значения На странице (Per Page) и В столбце (Per Column). В первом случае группа печатается без разрыва на странице, а во втором - без разрыва в колонке (полосе) отчета.

Замечание
В ячейки Поле/выражение (Field/Expression) окна Сортировка и группировка (Sorting and Grouping) можно вводить не только названия полей, но и выражения, т. е. группировка может выполняться по значению выражения. Ввод выражения начинается со знака равенства (=) так же, как в свойствах форм и отчетов
.

GardenCo

Сортировка данных

Информация в таблицах может быть отсортирована в порядке убывания или возрастания по одному или нескольким полям. Например, можно отсортировать таблицу клиентов по алфавиту, воспользовавшись фамилией в качестве первого поля сортировки и именем - в качестве второго. Получится список, подобный тому, который встречается в телефонных справочниках.

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

В этом упражнении вы воспользуетесь различными способами сортировки данных в таблице и форме. В качестве рабочей будет использоваться папка Office XP SBS\Access\Chap12\Sort . Выполните следующие шаги.

1. Откройте базу данных GardenCo, расположенную в рабочей папке.

2. Откройте таблицу Клиенты в режиме таблицы.

3. Чтобы отсортировать таблицу по полю Штат, щелкните в любом месте столбца Штат, а затем щелкните на кнопке . Записи будут упорядочены по регионам.

Совет . Можно также воспользоваться командами Сортировка по возрастанию (Sort Ascending) и в меню Записи (Records) или щелкнуть правой кнопкой мыши на столбце, а затем щелкнуть на нужной команде в контекстном меню.

4. Чтобы изменить порядок сортировки на обратный (при условии, что курсор все еще находится в столбце Штат ), щелкните на кнопке Сортировка по убыванию (Sort Descending) . Записи для штата Орегон находятся теперь в начале списка. В обоих случаях сортировка осуществлялась по алфавиту, но данные в поле Город располагаются беспорядочно. Очевидно, что список выиграет, если упорядочить города внутри регионов.

Хотя суть сортировки кажется вполне очевидной, для компьютера все не так просто. В Access цифровые данные могут трактоваться и как числа, и как текст. Поля, содержащие, помимо цифр, пробелы, тире или знаки препинания (как, например, в почтовом индексе или телефонных номерах), трактуются как текстовые. В отличие от них поля, содержащие такие данные, как цена или количество, считаются числовыми. При сортировке текстовых полей, все записи упорядочиваются вначале по первому символу, затем по второму и так далее - вплоть до последнего. Сортировка числовых данных осуществляется по их значениям в порядке возрастания или убывания. Такой подход может привести к неожиданным результатам. В следующей таблице представлены результаты сортировки первого столбца в зависимости от того, является его содержимое текстовым или числовым.

Чтобы отсортировать текстовое поле, содержащее цифры, в порядке возрастания или убывания значений, нужно дополнить их ведущими нулями до одинаковой длины. Например, данные 001, 011, 101 будут отсортированы правильно, даже если они определены как текстовые.

Совет . При сортировке записей по нескольким полям сортировка осуществляется последовательно, слева направо. Поэтому поля сортировки должны быть смежными и располагаться в нужной последовательности.

5. Чтобы разместить столбец Штат слева от поля Город , щелкните на заголовке столбца и перетащите его влево, пока между полями Адрес и Город не появится темная линия.

6. Так как столбец Штат уже выделен, нажмите на клавишу (Shift) и щелкните в заголовке столбца Город , чтобы распространить выделение на оба столбца.

7. Щелкните на кнопке Сортировка по возрастанию (Sort Ascending) , чтобы упорядочить записи по регионам и городам в порядке возрастания (города будут отсортированы внутри регионов).

Совет . Просматривая записи в режиме формы, их можно отсортировать, но только по одному полю. Для этого щелкните в нужном поле, а затем щелкните на одной из кнопок Сортировка (Sort) .

8. Хотя порядок столбцов в таблице Клиенты не имеет особого значения, все же верните столбец Штат на прежнее место.

9. Сохраните и закройте таблицу Клиенты .

10. Закройте базу данных.

Сегодня мы затронем тему отчетов в Access 2003 , а точнее очень полезную и интересную возможность данного программного продукта это группировка данных в отчете. Многие используют Access в качестве клиента в связи с этим формирование и программирование отчетов в Access очень важно, но многие начинающие программисты иногда даже не подозревают, с каким мощным инструментом они работают.

Как я уже сказал, Access очень популярен, особенно в связке с MSSql, т.е. когда его используют в качестве клиента. Если Вы не знаете что такое клиент, и что такое сервер то советую ознакомиться с материалом Что такое взаимодействие Клиент-Сервер?

И сегодня мы как раз будет рассматривать пример формирования отчета в Access, который будет брать данные с сервера MSSql 2008. Как настроить access на работу с MSSql Вы должны уже знать, а если не знаете, то не беда рассмотрим это в следующих статьях, потому что тема сегодняшней статьи совсем другая, а именно группировка данных в отчете.

Мы не раз затрагивали тему Access, поэтому если Вы начинающий программист access, то для лучшего освоения сегодняшнего урока хочу порекомендовать следующий материал – Основы создания запросов в Access 2003 .

Итак, приступим, и для начала давайте разберем исходные данные, т.е. источник данных. Мы не будем использовать в качестве источника запрос или представление данную роль у нас будет играть простая таблица с данными, а именно таблица с названием test_table, со следующими данными, которые я получил с помощью запроса select :

Создание отчета в Access 2003

Для того чтобы создать отчет откройте Access в режиме конструктора перейдите на объекты «Отчеты» и жмите создать

После чего у Вас откроется конструктор отчетов, и список полей, которые есть в нашей таблице.

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

Еще для наглядности я указал тип границы полей «Сплошная». Меняется это в свойстве поля (Правой кнопкой по полю «свойства»)

Сохраняем отчет с любым удобным для Вас названием, и можете запускать. Результат будет следующим:

Как видите все просто, и даже начинающий программист сделать это сможет, т.е. создать отчет в Access. Но начальство может сказать, что это не наглядно и они хотят видеть данные по каждому сотруднику в отдельности или по отделу, но так чтобы это было также в этом отчете.

Как не странно это сделать очень легко, и прибегать к редактированию источника данных совсем не нужно.

Группируем данные в отчете Access 2003

Для этого открываем в конструкторе отчета, окошко «Сортировка и группировка» выбираем там поле или поля группировки и в свойствах группы указываем показывать заголовок

Здесь мы указали, что первая группировка будет по полю otdel а вторая по полю name. И в конструкторе отчетов, после того как Вы укажите «Да» в поле показывать заголовок, у Вас сразу появятся эти самые заголовки, и Вам останется всего лишь переконструировать свой отчет, проще говоря, переставить поля таким образом, чтобы это устроил начальство, для примера я сделал следующим образом:

В итоге, когда Вы сохраните и запустите отчет, он будет уже выглядеть вот так:

Согласитесь что так более наглядно, сразу видно, какой отдел, что за сотрудник. И самое главное мы не меняли источник данных, другими словами, если Вам дан доступ править только клиентское приложение, а доступа к серверу у Вас нет, Вы легко сможете обойтись и без этого доступа.

Это был совсем простой пример, Вы можете конструировать свои отчеты любым образом, но я думаю что теперь, Вы понимаете, что такое группировка данных в отчете Access и как ее можно использовать, надеюсь это Вам пригодится!

Операция сортировки данных используется всегда для удобства нахождения нужной информации. Когда на экране (или на бумаге) отображается таблица, гораздо легче найти нужную строку, если эти строки упорядочены. Вы привыкли к тому, что табличные данные упорядочены по алфавиту, по дате, по увеличению или уменьшению значений в столбцах, содержащих числа. Но в разных ситуациях мы хотели бы сортировать строки по разным признакам (столбцам таблицы). В идеале это должно выполняться легким движением руки. Именно так и позволяет делать Access. По умолчанию, когда таблица открывается в режиме Таблицы, она упорядочивается по значению ключевого поля. Если ключевое поле для таблицы не определено, записи выводятся в порядке их ввода в таблицу. Если нужно отсортировать записи по значению другого поля, достаточно установить курсор на любую строку соответствующего столбца и нажать одну из кнопок на панели инструментов: Сортировка по возрастанию (Sort Ascending) или Сортировка по убыванию (Sort Descending).

Другой способ выполнения этой операции: щелкнуть правой кнопкой мыши по любой строке нужного столбца и выбрать из контекстного меню (рис. 2.55) соответствующую команду.

Таким образом можно упорядочить записи по любому столбцу таблицы. Ограничения существуют только на тип данных, которые можно упорядочивать - нельзя сортировать значения полей типа MEMO, гиперссылки или объекты OLE.

Чтобы правильно применять сортировку, нужно знать несколько простых правил.

  • При сортировке в возрастающем порядке записи, содержащие пустые поля (с пустыми значениями), указываются в списке первыми.
  • Числа, находящиеся в текстовых полях, сортируются как строки символов, а не как числовые значения. Если нужно отсортировать их в числовом порядке, все текстовые строки должны содержать одинаковое количество символов. Если строка содержит меньшее количество символов, то сначала нужно вставить незначащие нули.
  • При сохранении таблицы сохраняется и порядок ее сортировки.

Рис. 2.55.

Замечание

Порядок сортировки зависит от настроек языка, определенных в диалоговом окне Параметры (Options) при создании базы данных. Чтобы изменить эту настройку, необходимо выбрать в меню Сервис (Tools) команду Параметры (Options), открыть вкладку Общие (General) и в поле Порядок сортировки базы данных (New database sort order) выбрать нужный язык (см. гл. 14).

Процесс сортировки значительно ускоряется, если предварительно по данному полю был построен индекс.

Если вы изменили порядок сортировки записей в таблице, а потом решили ее закрыть, Access запрашивает, хотите ли вы сохранить изменения макета. Если вы ответите Да (Yes), то новый порядок сортировки сохранится и воспроизведется, когда таблица будет открыта в следующий раз. Для того чтобы вернуться к первоначальному порядку сортировки (по значению ключевого поля), необходимо выполнить команду меню Записи, Удалить фильтр (Records, Remove Filter/Sort).

Иногда нужно выполнить сортировку по значению нескольких полей. Для этого переместите сначала сортируемые столбцы таким образом, чтобы они оказались, во-первых, рядом, а во-вторых, с учетом приоритетов, - приоритеты устанавливаются слева направо, т. к. первыми будут сортироваться значения в крайнем левом столбце. После этого нужно выделить все столбцы и нажать, соответственно, кнопку Сортировка по возрастанию (Sort Ascending) или Сортировка по убыванию (Sort Descending) на панели инструментов.


Самое обсуждаемое
История развития профессии оператор эвм Кто нашел работу на оператора эвм История развития профессии оператор эвм Кто нашел работу на оператора эвм
Как устроена и работает плазменная панель Как устроена и работает плазменная панель
Сами сделали, сами сломали: впечатления от Hard Reset Redux Сами сделали, сами сломали: впечатления от Hard Reset Redux


top