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

RusFAQ.ru: Программирование на Basic / VBA


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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 307
от 26.06.2006, 17:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 182, Экспертов: 28
В номере:Вопросов: 2, Ответов: 2


Вопрос № 46854: Как можно распечатать текст из RichTextBox'а?...
Вопрос № 46915: Добрый день, уважаемые эксперты! В Access есть таблица с двумя полями: одно поле - код (например, 1, 2, 3 и т.п.), второе поле - число (например, 1234560, 1234561 и т.п.). ID NUMBER ------------------------------ 1 1234560 1 1234561<b...

Вопрос № 46.854
Как можно распечатать текст из RichTextBox'а?
Отправлен: 20.06.2006, 21:12
Вопрос задал: Dushin Igor (статус: 8-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: AlexanderZh
Здравствуйте, Dushin Igor!
Например http://web.vrn.ru/freestyler/vb/vbasic/5.htm

---------
Людей можно поделить на 10 типов: тех, кто понимает двоичную систему и тех, кто нет...
Ответ отправил: AlexanderZh (статус: 8-ой класс)
Ответ отправлен: 20.06.2006, 21:52
Оценка за ответ: 5


Вопрос № 46.915
Добрый день, уважаемые эксперты! В Access есть таблица с двумя полями: одно поле - код (например, 1, 2, 3 и т.п.), второе поле - число (например, 1234560, 1234561 и т.п.).
ID NUMBER
------------------------------
1 1234560
1 1234561
1 1234562
2 1234563
2 1234564
3 1234565

и т.п.

Необходимо проверять каждую запись и для чисел с одинаковым ID и обрезать последнюю цифру в поле NUMBER, чтобы "как бы" сгруппировать" значения NUMBER по полю ID, но если встретится значение 123456* с другим кодом ID, его необходимо оставить без изменений. Чтобы выбрать, какой ID - "главный" для значений NUMBER, необходимо считать записи, сколько раз значение типа 123456* встречается с кодом ID и максимальное значение ID по такому шаблону брать за "главное". Т.е. надо привести к такому вот виду:

Главность ID:
1 - 3 раза
2 - 2 раза
3 - 1 раз

ID=1 (главный)

ID NUMBER
------------------------------
1 123456
2 1234563
2 1234564
3 1234565

Вопрос: Как это реализовать на базе Access? Обычная группировка не помогает (так как значения-то разные) или я мало подумал над этим. Наверное можно прямо в тексте запроса выбрать главный ID, затем построчно делать NUMBER DIV 10 в каждой строке по сответствующему ID и перегонять в другую, выходную таблицу то, что получится. Но нет ли у кого идей, как этот процесс оптимизировать, какой-нибудь алгоритм предложит может быть кто-нибудь? Спасибо огромное заранее...
Отправлен: 21.06.2006, 12:32
Вопрос задал: Danich (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Филатов Евгений Геннадьевич
Здравствуйте, Danich!

У меня не получилось сгруппировать по вычисляемым полям, поэтому использовал дополнительный запрос:

SELECT id, left ( name, iif ( id= ( SELECT TOP 1 b.Id FROM Tab1 AS b GROUP BY b.Id ORDER BY Count ( b.id ) DESC; ) ,6,7 ) ) AS nname FROM Tab1;

Назвал SS

Результатом будет
id nname
1 123456
1 123456
1 123456
2 1234563
2 1234564
3 1234565

Основной запрос:

select id,nname from ss group by id,nname

Результат:
id nname
1 123456
2 1234563
2 1234564
3 1234565

Может у кого еще будут идеи?

С уважением.
Ответ отправил: Филатов Евгений Геннадьевич (статус: 3-ий класс)
Ответ отправлен: 21.06.2006, 19:08
Оценка за ответ: 5
Комментарий оценки:
Браво! Очень просто! Отсутствие должного опыта в Access (либо времени) не позволило мне так изящно решить этот вопрос, выбрать главное направление через сортировку в запросе по убыванию и захват этого значения через TOP 1. Надо будет запомнить, просто и очень эффективно... Огромное спасибо!!!


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное