![]() |
Модераторы: mihanik |
![]() ![]() ![]() |
|
zlato |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.10.2015 Репутация: нет Всего: 1 |
Господа,
я -- учитель информатики. Медицинским работникам нашего (и не только) учебного заведения нужно составлять списки учеников, родившихся в том или ином месяце. Я сделал необходимый макрос в Excel. Но имеется одна проблема. 16-значный номер полиса представляется в экспоненциальной форме даже после преобразования его в текст функцией CSTR (хотя и выравнивается по левому краю как текст). Понятно, что для поликлиники такой номер полиса 1,23457E+13 не подходит. Что можно сделать? Спасибо. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Форматировать ячейку (колонку) как текст ДО её заполнения.
Или, например, добавлять символ одинарной кавычки ' в начало числа. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
zlato |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.10.2015 Репутация: нет Всего: 1 |
Akina, спасибо,
но первый вариант не подходит (я об этом писал в начале). А второй - можно использовать. Раньше я вручную ставил "_" в конце. А ночью ![]() 770000_12345678 Буду ждать новых предложений... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Если это учёт "для внутреннего употребления" - рекомендую вообще разделить этот номер на две части. Ведь первая, 6-значная, всегда одинакова для всех полисов, кажется... нет? и заполнять её автоматически (само собой с возможностью корректировки). А вторую, 8-значную, заполнять обычным порядком - с ней таких проблем быть не должно. А если это - учёт, выдающий сведения "наружу" в электронном формате, то лучше ориентироваться на формат передачи данных. Теоретически, там между этими группами должен передаваться пробел. Добавлено через 1 минуту и 30 секунд Не было такого. ВЫ говорили только о преобразовании типа значения, и ни полслова о формате ячейки. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
zlato |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.10.2015 Репутация: нет Всего: 1 |
Akina, спасибо еще раз,
извините, я действительно написал только про преобразование в текст в макросе. Но я пробовал и через "Формат ячейки" и до, и после заполнения -- только меняется выравнивание, а представление все равно экспоненциальное. Первая часть медицинского полиса одинаковая только в Москве (770000), и то, судя по имеющимся номерам, не всегда (это зависит от страховой компании?). Так что, скорее всего, я буду в макросе разделять на 2 части и давать с нижним подчеркиванием между ними. Эти списки идут в бумажного виде в поликлинику. Наверное, можно закрывать тему? |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
На деле - я бы рекомендовал потратить некоторое время на освоение другого инструмента, и вместо Excel использовать Access.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
zlato |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.10.2015 Репутация: нет Всего: 1 |
Осваивать не нужно
![]() Дело в том, что исходная для меня информация в медкабинете была в виде таблиц в Word'e и Excel. И, хотя можно было превратить все списки в таблицы Access, я решил использовать Excel. Спасибо за все. Дмитрий. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Access удобнее.
Во-первых, нет этой идиотской инициативы с преобразованием типов и самоволкой в отображении. Сказали - поле текстовое, значит, будет текст, и баста. Во-вторых, формы ввода и выходные отчёты делаются на счёт "раз", причём сразу относительно красивые. В третьих, отобрать по нужному критерию (тот же месяц рождения) - раз плюнуть, только в запросе - источнике данных отчёта критерий отбора поменять. Ну и, ежели надо, выгрузить в Excel или Word (всё или выборку) - делается в два клика. А главное - Access всё-таки система управления данными, тогда как Excel всего лишь табличный процессор. А инструмент лучше брать по задаче. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
zlato |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.10.2015 Репутация: нет Всего: 1 |
Akina и другие
![]() возникла новая (точнее -- именно она и была) проблема. Наверное, я неточно сформулировал проблему. Экспоненциальная форма длинного целого числа появляется в ячейке при вставке информации из Word'a на лист. При этом последняя цифра теряется. После этого любые манипуляции теряют смысл. Итак, еще раз. Исходная информация об учениках, в том числе номера полиса, -- в таблице Word. При вставке ее на лист значение представляется как число в экспоненциальной форме, а главное -- последняя цифра заменяется на 0. Я решал проблему так -- в Word, перед вставкой в EXcel, добавлял _ в конце и затем копировал. Но хочется не просматривать все списки, а автоматизировать изменения. Как я понимаю, надо все менять в Word'e или при копировании, или при вставке (если возможно). Что делать? Добавлено через 7 минут и 16 секунд Akina, когда я писал последний комментарий, я еще не видел Вашего нового. Попробую сделать все в Access... Спасибо за все. |
|||
|
||||
zlato |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.10.2015 Репутация: нет Всего: 1 |
Акина, здравствуйте,
я по Вашему совету стал использовать Access. Хочу, чтобы после выбора значения из поля со списком на форме выполнялся макрос, по котором выполнится запрос на отбор данных с выбранным значением. Создал: 1) запрос с условием, использующим ссылку на поле со списком. 2) макрос, открывающий его; 3) привязал макрос к событию "После обновления" После выбора из списка запрос, если его запустить принудительно, работает правильно. Но макрос открывает запрос с результатом _предыдущего_ использования запроса. То есть он его именно открывает, а не выполняет. Почему-то возможности выполнить, запустить запрос в макросе нельзя -- макрокоманда только "открыть". Можно что-то сделать? Спасибо. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Макросы - это чёрный ящик. Да и запрос смотреть не комильфо. Я бы порекомендовал: 1) На основании запроса создать отчёт 2) В методе - обработчике события использовать VBA в модуле формы 3) В методе изменять Filter (хуже - RecordSource) отчёта, получив предварительно ListBox.Text, а затем его открывать на просмотр -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
zlato |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.10.2015 Репутация: нет Всего: 1 |
Акина,
спасибо: ============== 1) На основании запроса создать отчёт 2) В методе - обработчике события использовать VBA в модуле формы 3) В методе изменять Filter (хуже - RecordSource) отчёта, получив предварительно ListBox.Text, а затем его открывать на просмотр ============== До п. 1 я додумался сам (ночью ![]() Я шел поэтапно. Сначала решил проверить запрос (в нем надо было использовать месяц полной даты и значение из поля со списком). Потом, естественно, сделал бы отчет. Но последний-то на основе запроса -- как бы не было того же, что и без отчета. Буду пробовать. И попытаюсь уйти от макросов... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Какой смысл в этапе "вывод запроса", если он впоследствии будет выброшен? достаточно было убедиться, что при открытой форме и сделанном в поле выборе запрос при открытии даёт верные данные. К слову - использовать в запросах ссылки на контролы формы само по себе плохо - и некрасиво, и потенциально грабельно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
zlato |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.10.2015 Репутация: нет Всего: 1 |
Акина,
я обнаружил причину проблем. Надо закрывать предыдущее состояние отчета (а когда его не было (вчера) -- то закрывать запрос) и только потом открывать его с новым значением в запросе. Такой макрос работает, как и должен. Спасибо за идею использовать Access и за все остальное. Буду доводить все "до ума"... |
|||
|
||||
zlato |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.10.2015 Репутация: нет Всего: 1 |
Акина,
именно это я и хотел сделать -- проверить, что запрос выдает верные данные (при этом я разбирался, как использовать значение из поля со списком и как выделить из "полной даты" месяц). И на именно этой стадии выяснилось, что запрос выдает не новый результат, а старый. После создания и открытия отчета -- проблема оставалась. Как я все решил, я написал в предыдущей записи. А почему "использовать в запросах ссылки на контролы формы само по себе плохо - и некрасиво, и потенциально грабельно"? Пользователь выбирает из списка и получает результат. У меня БД простая. Неужели это может повлиять на ее работоспособность и надежность? И что такое "грабельно"? ![]() Еще раз спасибо за все. Дмитрий. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование, связанное с MS Office" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |