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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Длинное число как текст, Длинное число не отображается как текст  
:(
    Опции темы
zlato
Дата 25.10.2015, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Господа,
я -- учитель информатики. Медицинским работникам нашего (и не только) учебного заведения нужно составлять списки учеников, родившихся в том или ином месяце. Я сделал необходимый макрос в Excel.
Но имеется одна проблема. 16-значный номер полиса представляется в экспоненциальной форме даже после преобразования его в текст функцией CSTR (хотя и выравнивается по левому краю как текст).
Понятно, что для поликлиники такой номер полиса
1,23457E+13
не подходит.
Что можно сделать?
Спасибо.

PM MAIL   Вверх
Akina
Дата 25.10.2015, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Форматировать ячейку (колонку) как текст ДО её заполнения.
Или, например, добавлять символ одинарной кавычки ' в начало числа.


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

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


Новичок



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

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



Akina, спасибо,

но первый вариант не подходит (я об этом писал в начале).
А второй - можно использовать.
Раньше я вручную ставил "_" в конце. А ночью smile   решил делать почти то, что предложили Вы, -- только я разделяю длинный номер полиса на части (6 и 8) и склеиваю их так, что между ними еще "_".
770000_12345678

Буду ждать новых предложений...
PM MAIL   Вверх
Akina
Дата 26.10.2015, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(zlato @  26.10.2015,  11:36 Найти цитируемый пост)
я разделяю длинный номер полиса на части (6 и 8) и склеиваю их так, что между ними еще "_".
770000_12345678

Если это учёт "для внутреннего употребления" - рекомендую вообще разделить этот номер на две части. Ведь первая, 6-значная, всегда одинакова для всех полисов, кажется... нет? и заполнять её автоматически (само собой с возможностью корректировки). А вторую, 8-значную, заполнять обычным порядком - с ней таких проблем быть не должно.
А если это - учёт, выдающий сведения "наружу" в электронном формате, то лучше ориентироваться на формат передачи данных. Теоретически, там между этими группами должен передаваться пробел.

Добавлено через 1 минуту и 30 секунд
Цитата(zlato @  26.10.2015,  11:36 Найти цитируемый пост)
первый вариант не подходит (я об этом писал в начале).

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


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

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


Новичок



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

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



Akina, спасибо еще раз,

извините, я действительно написал только про преобразование в текст в макросе.
Но я пробовал и через "Формат ячейки" и до, и после заполнения -- только меняется выравнивание, а представление все равно экспоненциальное.

Первая часть медицинского полиса одинаковая только в Москве (770000), и то, судя по имеющимся номерам, не всегда (это зависит от страховой компании?).

Так что, скорее всего, я буду в макросе разделять на 2 части и давать с нижним подчеркиванием между ними.

Эти списки идут в бумажного виде в поликлинику.

Наверное, можно закрывать тему?


PM MAIL   Вверх
Akina
Дата 26.10.2015, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



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


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

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


Новичок



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

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



Осваивать не нужно smile - я знаю Access достаточно хорошо.
Дело в том, что исходная для меня информация в медкабинете была в виде таблиц в Word'e и Excel. И, хотя можно было превратить все списки в таблицы  Access, я решил  использовать Excel.

Спасибо за все.

Дмитрий.
PM MAIL   Вверх
Akina
Дата 26.10.2015, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Access удобнее. 
Во-первых, нет этой идиотской инициативы с преобразованием типов и самоволкой в отображении. Сказали - поле текстовое, значит, будет текст, и баста.
Во-вторых, формы ввода и выходные отчёты делаются на счёт "раз", причём сразу относительно красивые.
В третьих, отобрать по нужному критерию (тот же месяц рождения) - раз плюнуть, только в запросе - источнике данных отчёта критерий отбора поменять.
Ну и, ежели надо, выгрузить в Excel или Word (всё или выборку) - делается в два клика.

А главное - Access всё-таки система управления данными, тогда как Excel всего лишь табличный процессор. А инструмент лучше брать по задаче.


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

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


Новичок



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

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



Akina и другие smile

возникла новая (точнее -- именно она и была) проблема.

Наверное, я неточно сформулировал проблему.

Экспоненциальная форма длинного целого числа появляется в ячейке при вставке информации из Word'a на лист.
При этом последняя цифра теряется.
После этого любые манипуляции теряют смысл.

Итак, еще раз.
Исходная информация об учениках, в том числе номера полиса, -- в таблице Word.
При вставке ее на лист значение представляется как число в экспоненциальной форме, а главное -- последняя цифра заменяется на 0.

Я решал проблему так -- в  Word, перед вставкой в EXcel, добавлял _ в конце и затем копировал. Но хочется не просматривать все списки, а автоматизировать изменения.

Как я понимаю, надо все менять в Word'e или при копировании, или при вставке (если возможно).

Что делать?

Добавлено через 7 минут и 16 секунд
Akina,

когда я писал последний комментарий, я еще не видел Вашего  нового.
Попробую сделать все в Access...

Спасибо за все.

PM MAIL   Вверх
zlato
Дата 27.10.2015, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Акина, здравствуйте,

я по Вашему совету стал использовать Access.

Хочу, чтобы после выбора значения из поля со списком на форме выполнялся макрос, по котором выполнится запрос на отбор данных с выбранным значением.

Создал:
1) запрос  с условием, использующим ссылку на поле со списком.
2) макрос, открывающий его;
3) привязал макрос к событию "После обновления"

После выбора из списка запрос, если его запустить принудительно, работает правильно.

Но макрос открывает запрос с результатом _предыдущего_ использования запроса. То есть он его именно открывает, а не выполняет.
Почему-то возможности выполнить, запустить запрос в макросе нельзя -- макрокоманда только "открыть".
Можно что-то сделать?

Спасибо.
PM MAIL   Вверх
Akina
Дата 28.10.2015, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(zlato @  27.10.2015,  23:21 Найти цитируемый пост)
1) запрос  с условием, использующим ссылку на поле со списком.
2) макрос, открывающий его;
3) привязал макрос к событию "После обновления"

Макросы - это чёрный ящик. Да и запрос смотреть не комильфо.
Я бы порекомендовал:
1) На основании запроса создать отчёт
2) В методе - обработчике события использовать VBA в модуле формы
3) В методе изменять Filter (хуже - RecordSource) отчёта, получив предварительно ListBox.Text, а затем его открывать на просмотр



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

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


Новичок



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

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



Акина, 

спасибо:
==============
1) На основании запроса создать отчёт
2) В методе - обработчике события использовать VBA в модуле формы
3) В методе изменять Filter (хуже - RecordSource) отчёта, получив предварительно ListBox.Text, а затем его открывать на просмотр
==============

До п. 1 я додумался сам (ночью smile ), хотя и не реализовал его.

Я шел поэтапно. Сначала решил проверить запрос (в нем надо было использовать месяц полной даты и значение из поля со списком).
Потом, естественно, сделал бы отчет. Но последний-то на основе запроса -- как бы не было того же, что и без отчета. Буду пробовать.  

И попытаюсь уйти от макросов...
 


PM MAIL   Вверх
Akina
Дата 28.10.2015, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(zlato @  28.10.2015,  12:25 Найти цитируемый пост)
Я шел поэтапно. 

Какой смысл в этапе "вывод запроса", если он впоследствии будет выброшен? достаточно было убедиться, что при открытой форме и сделанном в поле выборе запрос при открытии даёт верные данные.

К слову - использовать в запросах ссылки на контролы формы само по себе плохо - и некрасиво, и потенциально грабельно.


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

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


Новичок



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

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



Акина,

я обнаружил причину проблем.
Надо закрывать предыдущее состояние отчета (а когда его не было (вчера) -- то закрывать запрос) и только потом открывать его с новым значением в запросе. 
Такой макрос работает, как и должен.

Спасибо за идею использовать Access и за все остальное.

Буду доводить все "до ума"...


PM MAIL   Вверх
zlato
Дата 28.10.2015, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Акина,

именно это я и хотел сделать -- проверить, что запрос выдает верные данные (при этом я разбирался, как использовать значение  из поля со списком и как выделить из "полной даты" месяц). И на именно этой стадии выяснилось, что запрос выдает не новый результат, а старый. После создания и открытия отчета  -- проблема оставалась. Как я все решил, я написал в предыдущей записи.

А почему "использовать в запросах ссылки на контролы формы само по себе плохо - и некрасиво, и потенциально грабельно"?

Пользователь выбирает из списка и получает результат. У меня БД простая. Неужели это может повлиять на ее работоспособность и надежность?

И что такое "грабельно"? smile

Еще раз спасибо за все.

Дмитрий.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

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

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

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



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


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

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


 




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


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

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