powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подстановка значений через текстовое поле!
43 сообщений из 43, показаны все 2 страниц
Подстановка значений через текстовое поле!
    #32523010
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи!!! Помогите!!!
Существует форма, в ней текстовое поле. Как сделать такую вот штуку:
1. при написании в текстовом поле , например, "П" ниже в подчиненной форме(запросе) показывались все фамилии(названия) на букву "П", и, соответственно, при последующем вводе, например "Петро" отсеивались все лишние и показывались только слова, начинающиеся на "Петро".
2. Дальше - больше! При клике в этой подчиненной форме/запросе на какую-либо фамилию в текстовом поле, которое находится ниже на основной форме, должна выводиться какая-нибудь информация по фамилии, например, количество пропущенных по болезни дней или трудовой стаж (любая инфа).


Помогите, пожалуйста! Буду очень признателен всем откликнувщимся.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32523017
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KeyDown + like в where RowSource положенного под список + AfterUpdate этого списка
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32523639
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а можно поподробнее - туплю я.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32523647
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
По п.1:

В запросе пишем что-то типа where MyField like forms!MyForm!MyField & "*"
В событии OnChange (не KeyDown) текстового поля ставим requery подчиненной формы.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32524940
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос я написал, он работает( предлагает ввести значение параметра-пишешь и он показывает те, которые нужно.Вот сам текст запроса
SELECT Сотрудники.Фамилия
FROM Сотрудники
WHERE (((Сотрудники.Фамилия) Like [forms]![Болезнь]![Поле000] & "*"));

А вот дальше "Изменение" в текстовом поле не работает, не понимаю я что там с Requery написать. Надо как-то запрос с полем связать. Как?
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32524942
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторА вот дальше "Изменение" в текстовом поле не работает,
Это как это?

не понимаю я что там с Requery написать.
private sub Поле000_change()
me.requery
end sub
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32524980
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
private sub Поле000_change()
me.requery
end sub
в Вижуале написал и при вводе слова в текстовом поле буквы записываются СЛЕВА от предыдущей, список в подчиненной не обновляется.Что делать дальше-то? Не работает.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32524983
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Какой список? Мне отсюда не видно...
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32524987
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Список в подчиненной форме, который меняется в соответсвии со значением в текстовом поле.Их надо связать(запрос со значением в текстовом поле), а как - не понятно.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32524991
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Список - это листбокс? Надо менять содержимое его или самой подчиненной формы? Напоминаю, что мне не видно отсюда. Я полагаюсь только на то, что тут написано. А тут написано много жалоб и мало информации.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525001
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, не листбокс, а табличная подчиненная форма, в которой он хочет, чтобы отсеивались те, кто начинается на вводимое в свободное поле на основной форме

> написал и при вводе слова в текстовом поле буквы записываются СЛЕВА от предыдущей,

не удержусь... посмотрите, откуда Саныч и поймете, почему такое происходит ;))

ну, мадери
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525004
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да у меня самого возникла мысль, что получается надпись на иврите. Ну, это уж с кем поведешься...
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525005
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Нет, я понял, что происходит. При requery вся форма "встряхивается" и курсор падает в начало поля... Я не знаю, что делать. Может, так:

private sub Поле000_change()
dim n as integer
n=Поле000.selstart
me.requery
Поле000.selstart=n
end sub
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525007
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Список- это список фамилий как результат запроса
SELECT Сотрудники.Фамилия
FROM Сотрудники
в подчиненной форме. Нужно:
- чтобы при вводе в текстовое поле, которое над подчиненной формой, в самой этой подчин.форме фильтровались/отсеивались слова, не содержащие последовательно-введенных букв. То есть, должна быть связь между текстовым полем и запросом в подчиненной форме. Типа как автоподстановка в текстбоксе, только она должна происходить в этой подч.форме.
Вроде, так. Надеюсь, что прояснил. Если чего, то подробнее попытаюсь объяснить.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525008
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему не написать
me.[подчиненнаяФорма].requery?
тогда и его список обновится
или так нельзя?
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525010
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Прав. Нет, моя голова уже не соображает... Пойду-ка спать.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525011
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Dr.Drew:

Что именно надо сделать, мы читаем уже третий раз. С этим у нас проблем нет. Проблема только с тем, что трудно заниматься отладкой, когда не видишь программу.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525012
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr.Drew
пишите

private sub Поле000_change()
me.[подчиненнаяФорма].requery
end sub

что получилось?
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525018
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А обязательно отсеивать?
Вот пример как просто позиционировать на нужной записи
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub ctlSearch_Change()
'Позиционирование поиска по фамилии
Dim rst As DAO.Recordset
    Set rst = Me.Recordset.Clone
    rst.FindFirst "left([Family]," & Len(ctlSearch.Text) & ") = '" & ctlSearch.Text & "'"
    If Not rst.NoMatch Then Me.Bookmark = rst.Bookmark
ctlSearch.SelStart = Len(ctlSearch.Text)
Set rst = Nothing
End Sub
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525021
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хде-то у Гетса Сие окучивается так - он ченdge текстбокса его содержимое отдается принудительно раскрытому комбобоксу, вытянутому на нужный размер, для создания приличности вида "списка" - в том комбобоксе (принудительно раскрытом) все само и прокручивается/ищется по мере набора в текстбоксе.

Красивше сходу не придумывается. Может сгодится - (кажется хде-то в книжках про 2002 акцесс)
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525024
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 fedd:
написал -заработало, только с какими-то подвисаниями, сразу не показывает, а выдает при стирании символов из текстбокса и тоже не всегда.Надо чо-то подправить.Может больше фамилий нашарашить. Но хоть то, что уже фунциклирует несказанно радует.Как бы я без вас!

2Alexander G:
то есть, находится фамилия и выделяется в подчиненной форме?
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525029
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текущей становится запись первая, удовлетворяющая условию. Сортировка в запросе, естественно, по фамилии.
Только в примере поле находится на форме с фамилиями. Если обязательно что на главной (а его можно разместить и в заголовке подчиненной) то нужно изменить
Me![КонтролПодчиненойФормы].Form.Recordset.Clone
Аналогично и с Me.Bookmark
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525031
Фотография аувв
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> с какими-то подвисаниями, сразу не показывает,

индекс сделайте по полю "фамилие" (название) - быстрее искать будет...
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525033
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 fedd:
Выяснил как он глючит:
- Набираю первую букву
- перевожу фокус на подчиненную форму
- перевожу фокус обратно в текстбокс и нажимаю пробел
Только при таких действиях он выдает мне слова, начинающиеся на введенную первую букву в текстбоксе. Как это можно исправить?
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525034
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 fedd:
еще баг - при вводе, проделав вышеописанное и нажав вместо пробела следующую букву, в списке всё-равно показываются слова, содержащие первую букву, но несодержащие второй. То есть, поиск получается идет только по первой букве.Вот как.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525045
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще вариант, без запросов
Код: plaintext
1.
2.
3.
Private Sub Поле000_Change()
Me![подчиненная форма Сотрудники].Form.Filter = "[Фамилия] Like '" & [Поле000].Text & "*'"
Me![подчиненная форма Сотрудники].Form.FilterOn = True
End Sub
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32525608
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Др.Дрю

запрос

Код: plaintext
1.
2.
SELECT Сотрудники.Фамилия
FROM Сотрудники
WHERE (((Сотрудники.Фамилия) Like [forms]![Болезнь]![Поле000] & "*"));

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

может быть, они подскажут, что нужно делать setfocus подформе? (хотя странно). я таких тонкостей не помню...
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32526886
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 fedd:
ок, пасиба.Только вот куда кавычки еще можно добавить?Не знаю, идей чо-то нет.
Люди, хто тут есть! Что с фокусом-то делать? Как от бага в текстовом поле избавиться? Хелп!
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32526918
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кавычки имелись в виду вот сюда:

Код: plaintext
Like "'" & [forms]![Болезнь]![Поле000] & "*'"));
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529465
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветики! ;)

> что нужно делать setfocus подформе

а про фокус чего, я был не прав?
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529472
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А зачем?
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529475
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну он говорил, что обновляется только после того, как он ткнет в список. вот я и подумал.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529476
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Какая-то загадка есть в этом. Я не понимаю, почему так происходит.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529482
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь: http://lobodava.by.ru как раз на эту тему. Надеюсь, я не слишком еще с этим надоел

А вообще, по-моему, не стоит выводить результат поиска в ленточную форму, чтобы потом, кликнув в ней на некоторую запись, перейти в основной форме на ту же запись только со всеми полями.
Обычно, если позволяет место на форме, т.е. отображаемой для редактирования информации не очень много, можно разделить форму вертикально на две части, на правую и левую панель, и, например, на левую панель положить контролы для редактирования, а на правую - поисковый список (ListBox). Отобрал нужные строчки в списке на правой панели, кликнул на одну из них, получил текущюю запись в левой панели для редактирования.
Если редактируемой информации много, то можно либо левую панель на несколько страниц разложить с помощью Tab Control'a, либо поисковую форму сделать всплывающей (Pop Up), оставив на "дне" форму для редактирования с её тулбарами.

Хотя о вкусах не спорят...
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529688
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 lobodava:
Дык если бы это мне надо было бы, я бы так не делал, а так преподу понадобилось именно вот так шоб было и чо хошь, то и делай.
Я вот тут что надыбил
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub fam_Change()
    If fam.Text = "" Then GoTo m1
    Dim vin As Recordset
    Set dbs = CurrentDb
    Set vin = dbs.OpenRecordset("_ñïðàâ âèíîâí")
    DoCmd.GoToRecord , , acFirst
    vin.MoveFirst
    Do Until vin.EOF
        If fam.Text = Mid$(vin![ÔÈÎ âèíîâíèêà],  1 ,  1 ) Then
            GoTo m1
        End If
        DoCmd.GoToRecord , , acNext
        vin.MoveNext
    Loop
    MsgBox (" áàçå íåò âèíîâíèêîâ áðàêà, ó êîòîðûõ ôàìèëèÿ íà÷èíàåòñÿ ñ ýòîé áóêâû")
    vin.MoveFirst
    DoCmd.GoToRecord , , acFirst
    fam.Text = ""
m1:
End Sub
это для поиска по первой букве. Может это переделать для большего количества букв?
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529774
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 lobodava:
Зашел на сайт, сделал всё как написано в автор
Код: plaintext
"Предыстории",
но ничего не заработало. Может у меня глюк какой в Эксессе,но для текстбокса нет события OnChange, есть тока Change, я и с ним проверил - не работает. Жалко. Если бы заработало, было бы здорово.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529813
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не у тебя Access глюкованый, это у меня ручки крючковатые - нету события OnChange в VBA у формы в Access'e

Только я не понял: задача отфильтровать или спозиционировать?
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529831
nostra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У себя я сделал так:
Private Sub test_Change()
DoCmd.RunCommand acCmdSaveRecord
Forms!test!Test_slave.Requery
Me!test.SelStart = Len(Me!test & "")
End Sub

test-поле, по которому фильтруются записи в подчинённой форме
Test_slave- подчинённая форма

Вот только проблема - при сохранении записи в test Аксес пробел за символ не считает.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32529832
nostra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а подчинённая форма основана как было выше на запросе типа
SELECT ...... Like test &"*"
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32530259
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nostraУ себя я сделал так:
Private Sub test_Change()
DoCmd.RunCommand acCmdSaveRecord
Forms!test!Test_slave.Requery
Me!test.SelStart = Len(Me!test & "")
End Sub

Я тоже так сначала делал... Интересный эффект наблюдается при таком подходе если не отключить у TextBox'a Автозамену и подставить букву "i": после DoCmd.RunCommand acCmdSaveRecord срабатывает Автозамена и меняет "i" маленькую на "I" большую (слово "я" в английском пишется с большой буквы) , на эту замену вызывается событие Change и ... тут, казалось бы, и должнен прерваться этот круг, ведь "I" уже большая, ан нет - Автозамена ищет комбинацию и заменяет... и так до бесконечности: Автозамена > Change > Автозамена > Change > ...
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32531237
Dr.Drew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 nostra:
Ура!!!Сделал - поиск заработал!Просто нет слов. БЧСище!!!

Только теперь осталось доделать всю форму поиска. Прикрепляю Вам рисунок всей формы. На спозиционированную фамилию нужно найти премию из таблицы "Расчетный лист", в которой есть, соответственно, месяц, год и премия.
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32531517
nostra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видать у тебя в подчинённой форме отсутствует поля "Табельный номер". Что если в таблице 2 Петрова?
Посоветую сделать подчинённую форму не в виде таблицы, а в виде формы (свойства формы). А поле "Табельный номер" в свойстве "вывод на экран" - нет.
Далее в коде:

Private Sub cmdPrimia_Click()
Dim rst As ADODB.Recordset

Set rst = New ADODB.Recordset
rst.Open "SELECT Премия FROM [Расчётный лист] WHERE [Табельный номер]=" & Me!Test_slave![Табельный номер] & "Месяц=" & Me!month & "Год=" & Me!Year, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Me!premia = rst.Fields(0) ' в твоё поле "Премия" заносит из rst первое значение
End Sub

У тебя на рисунке:
Me!Month="Январь"
Me!Year="2004"
...
Рейтинг: 0 / 0
Подстановка значений через текстовое поле!
    #32531518
nostra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в коде подчинённой формы так:

Private Sub Form_Current()
Forms!test!premia = ""
End Sub

Чтоб премия пропадала :)), когда переходишь на другую запись.
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подстановка значений через текстовое поле!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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