powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма в табличном виде - заполнение полей ввода
17 сообщений из 17, страница 1 из 1
Форма в табличном виде - заполнение полей ввода
    #32395980
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача:
Есть форма [Фирма] на ней 3 свободных Edit`а, требуется эту форму использовать как подформу в табличном ввиде чтоб в этих Edit`ах была обобщённая информация
Решение:
Я сейчас попробовал так: попытался вносить информацию на событие OnCurrent получилость что во всех фирмах одинаковые поля.
Дальше попытался прям в Edit в область "Данные" вставить строку =iif(isnull(Город); ""; "г." & Город & " ") & iif(isnull(Улица); ""; "ул." & Улица) ..., а эта конструкция ужастно тормазит, когда ведёшь скролинг то вообще ничего не видно когда-же останавливаешь то через секунду появляется. Если тыкаешь в эту область мышкой то вообще передёргивает и долго думает
Вопрос:
Как я могу сам в табличном виде заполнить Edit`ы?
Могу привести полный пример адреса:
=IIf(IsNull([ПочтовыйИндекс]);"";[ПочтовыйИндекс] & " ") & IIf(IsNull([Страна]);"";[Страна] & " ") & IIf(IsNull([Область]);"";IIf([ТипОбласти]="Край";" кр. " & [Область];IIf([ТипОбласти]="Область";" обл. " & [Область];IIf([ТипОбласти]="Республика";"республика " & [Область] & " ";[ТипОбласти] & " " & [Область] & " ")))) & IIf(IsNull([Город]);"";"г." & [Город] & " ") & IIf(IsNull([Улица]);"";"ул." & [Улица] & " ") & IIf(IsNull([Дом]);"";[Дом] & " ") & IIf(IsNull([Корпус]);"";[Корпус] & " ") & IIf(IsNull([Этаж]);"";"эт." & [Этаж]) & IIf(IsNull([Комната]);"";[Комната])
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32395983
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо этого \r
\r
=IIf(IsNull([ПочтовыйИндекс]);"";[ПочтовыйИндекс] & " ") & IIf(IsNull([Страна]);"";[Страна] & " ") & IIf(IsNull([Область]);"";IIf([ТипОбласти]="Край";" кр. " & [Область];IIf([ТипОбласти]="Область";" обл. " & [Область];IIf([ТипОбласти]="Республика";"республика " & [Область] & " ";[ТипОбласти] & " " & [Область] & " ")))) & IIf(IsNull([Город]);"";"г." & [Город] & " ") & IIf(IsNull([Улица]);"";"ул." & [Улица] & " ") & IIf(IsNull([Дом]);"";[Дом] & " ") & IIf(IsNull([Корпус]);"";[Корпус] & " ") & IIf(IsNull([Этаж]);"";"эт." & [Этаж]) & IIf(IsNull([Комната]);"";[Комната])\r
\r
лучше сделать /topic/69598&hl=mid\r
\r
И этот адрес надо воткнуть в запрос-источник данных формы. Тогда обновляться будет нормально.\r
\r
Только непонятно, что означает "ней 3 свободных Edit". Редактировать такие поля будет нельзя (без дополнительных усилий).
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32395989
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А редактировать и не надо, просто для экономии места надо в один запихнуть весь адрес, а если для каждого поля колонку держать то длинная получается. Во вторых Mid как будет работать если у меня написанно: ...IIf(IsNull([Город]);"";"г." & [Город] & " ")... здесь есть "г." ещё есть "ул." и т.д.
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32395995
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторВо вторых Mid как будет работать если у меня написанно: ...IIf(IsNull([Город]);"";"г." & [Город] & " ")... здесь есть "г." ещё есть "ул." и т.д.
Так не надо так писать, а надо так, как предложил Geo.
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32395998
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так в этом то и буда я не понял что он предложил. Как мне писать? Mid((" г." +Город) & (" ул." +Улица)) так? И что это будет? Мне надо результат примерно так (Россия кр.Краснодарский г.Краснодар ул.Лузана дом 13).
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32396116
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще проще было бы объединить несколько полей в поле "Адрес"
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32396127
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этта точно!

Вот никак не могли декомпостировать адрес типа:
г.Мухосранск, мкр-н. им.Верхних Полей аэрации, набережная р.Вонючки, 1Б корпус 5 строение 1 владение А, вход через 3-ю арку слева от трансформаторной будки, 4 подъезд, 5,5 этаж комн.28 звонить 3 раза стучать пока не откроют


ИМХО адрес (если почтовый конечно) не декомпозировать надо, а в текстовом поле записать. Ну, хотя бы его остаток (после индекса и города). А если в БД иностранные адреса появляются, то вообще только так можно.
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32396213
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Стандартное" (для меня) решение при наличии "расчетных" величин, которые хочется вводить руками (с пересчетом связанных полей):

1. Лента, вместо таблицы

2. Вместо "свободных" - по 2 поля одинаковых размеров
2.а. Вычисляемое (на переднем плане) - отображает вычисляемое значение
2.б. Поле ввода (под вычисляемым, без автоперехода по таб)

3. В вычисляемом по входу процедура:
3.а. - копирование значения из вычисляемого в поле ввода
3.б. - передача фокуса в поле ввода.

4. В поле ввода "после обновления" - процедура пересчета связанных полей.
___
Итого: возможность ввода в свободное поле + отображение актуальных для каждой записи значения.
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32396412
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор=IIf(IsNull([ПочтовыйИндекс]);"";[ПочтовыйИндекс] & " ") & IIf(IsNull([Страна]);"";[Страна] & " ") & IIf(IsNull([Область]);"";IIf([ТипОбласти]="Край";" кр. " & [Область];IIf([ТипОбласти]="Область";" обл. " & [Область];IIf([ТипОбласти]="Республика";"республика " & [Область] & " ";[ТипОбласти] & " " & [Область] & " ")))) & IIf(IsNull([Город]);"";"г." & [Город] & " ") & IIf(IsNull([Улица]);"";"ул." & [Улица] & " ") & IIf(IsNull([Дом]);"";[Дом] & " ") & IIf(IsNull([Корпус]);"";[Корпус] & " ") & IIf(IsNull([Этаж]);"";"эт." & [Этаж]) & IIf(IsNull([Комната]);"";[Комната])

mid((", " + [ПочтовыйИндекс]) & (", " + [Страна]) & (", " + lcase([ТипОбласти]) + [Область]) & (", " + [Город]) & (", " + [Улица]) & (", " + [Дом]) & (", " + [Корпус]) & (", эт. " + [Этаж]) & (", " + [Комната]);3)
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32397259
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если применить что подсказывает GEO то получиться:
Россия, Краснодарский, Краснодар, Старокубанская, 116, , , 51, или
Россия, Краснодарский, Краснодар, Коммунаров, 121, , ,
Мне данная надпись не нравиться, это не по человечески. И где здесь этаж?
А компьютер создан для человека, а не на оборот! И если я хочу чтобы перед улицей стояло "ул." то так тому и быть. Другое дело если этот Access, мне он очень не понравился - но требование заказчика, так не может. Вот я и спросил умных людей как токовое возможно сотворить. Простой вариант я сам предложил но он тормозючий дальше некуда. Хотя лично мне непонятно что всё это время делает P4-2800 пока появляется надпись, ведь тормазит то на сервере, на клиенте ещё не проверял. Да и скорость винта на эти жалких 250 записей должно хватать выше крыши. Странно всё это.
Так спрошу на всякий ещё раз: разве никто за всю историю компютероплавания не делал ЧЕЛОВЕЧЕСКИЙ адрес??? И как его отобразить в талбичной форме?
В ленточной форме как брать поле отображаемого элемента? Например рисуется(как об этом узнать?) строка 10 - и как туда вписать без дополнительных запросов записать элемент 10? Нету ведь OnPaint.
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32397269
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты попробуй
сравни своё и то что GEO предложил. внимательно..
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32397275
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и везде пишется , что iif одна из самых тормознутых фичей
рекомендуют использовать только в крайних случаях
а у тебя в одном поле столько раз*250(записей)!


вместо IIF(isnull([Город]).....)

лучше IIF(Len([Город])=0, ....)

по Гетцу...
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32397294
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То что я привёл как пример от GEO это из запроса скопированно.
А вот моя запись(из отчёта):
320067 Россия кр.Краснодарский г.Краснодар ул.Красная 83 эт.4 оф.12
Это значительно понятней. Я говорю не от фонаря - я запись с запятыми показывал заказчику, а тот отверг сославшись "что мы запятые считать будем?" по тому и пристаю с более разборчивой записью.
В файл и в отчёт я всё сделал на VB, а в табличную форму никак.
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32397295
Andrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гетцу безесловно лучше знать чем мне однако для меня это новость.
На C++ быстрее будет работать if(str[0] == 0) чем вызов процедуры LEN - if(len(str) > 0). Что Базы данных не на Assembler`е написаны?
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32397659
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если не нравятся запятые, то способ Geo модифицируется в два прыжка:

1. Вместо ", " пишем " ".
2. Вместо 3 пишем 2.
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32397686
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, это тот самый случай, по которому мы с Geo немножечко поспорили в конце прошлого топика с подобным вопросом
Когда в полях хранятся пробелы, а не Null. Другое дело, что это вопрос скорее к разработчику структуры БД, а не к отвечающим
...
Рейтинг: 0 / 0
Форма в табличном виде - заполнение полей ввода
    #32399924
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
len(str) - просто читает служебное поле строки с её длиной
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма в табличном виде - заполнение полей ввода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]