powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / После обновления пустое поле комбобокса
16 сообщений из 16, страница 1 из 1
После обновления пустое поле комбобокса
    #39737186
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет. на событие Change комбобокса стоит код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub FActor_Change()
    On Error GoTo FActor_Change_Error
    Dim f
    f = Me.FActor.Text
    Me.FActor.RowSource = "SELECT OffID,(People.FName &" & "' '" & "& Left(People.LName,1) &" & "'.'" & "& Left(People.PName,1) &" & "'.')" _
        & "AS FIO FROM People INNER JOIN Officers ON People.PeopleID = Officers.PeID WHERE People.FName like '*" & f & "*' ORDER BY People.FName"
    Me.FActor.SelStart = Len(f)
    Me.FActor.SelLength = 0
    Me.FActor.Dropdown
  
    On Error GoTo 0
    Exit Sub

FActor_Change_Error:

    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure FActor_Change, line " & Erl & "."

End Sub



Код работает (фильтрует), но при выборе значения из списка в поле комбо значение пропадает. Переход форма-конструктор-форма - значение появляется. Других процедур для комбо не прописано, кроме начального задания значения комбо.RowSource на событии Form.Load.
В чем может быть причина и как от этого избавиться?

П.С. на других комбо формы такой же код работает как надо.
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737224
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lekks,
Поясните,пожалуйста,чего Вы хотите добиться(какой результат ожидается после выполнения этого кода)?
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737266
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lekksпри выборе значения из списка в поле комбо значение пропадает.По видимому, значение отсутствует в назначенном источнике строк ( RowSource ), а ширина колонки со значением у тебя скорее всего равна 0. Вот его становится и не видно.
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737268
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuLekks,
Поясните,пожалуйста,чего Вы хотите добиться(какой результат ожидается после выполнения этого кода)?

Содержимое списка фильтруется в зависимости от введенного в поле комбо текста - поиск в списке по любой части слова, совпадающей с введенным текстом (это работает).
Далее должен быть выбор из отфильтрованного списка необходимого значения (ФИО сотрудника) и сохранение этого значения в поле комбо, но при выборе сотрудника в поле комбо пусто. При переходе из режима формы в режим конструктора и обратно значение появляется.
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737269
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так то понял причину. Выбираем то из списка "Иванов И.И." а like по фамилии. Фамилии Иванов И.И. не существует. Но что поменять все равно не пойму.
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737273
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lekks, на событие "после обновления" источником строк ( RowSource ) установи строку запроса без фильтра.
как-то так
Код: vbnet
1.
2.
3.
4.
...
Me.FActor.RowSource = "SELECT OffID, (People.FName & ' ' & Left(People.LName,1) & '.' & Left(People.PName,1) & '.')" & _
                      " AS FIO FROM People INNER JOIN Officers ON People.PeopleID = Officers.PeID;"
...
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737276
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправил...
ПанургLekks, на событие комбобокса "после обновления" источником строк ( RowSource ) установи строку запроса без фильтра.

Да. И строку для источника строк (вообще строки запросов в коде VBA) формируй правильно. В представленной в примере пропущен пробел при разбивке на две подстроки. Так-то не должно работать.

..."'.')" _<-тут нет пробела
тут тоже нет -> & "AS ...
В результате будет -> ....)AS ...
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737412
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LekksСодержимое списка фильтруется в зависимости от введенного в поле комбо текста - поиск в списке по любой части слова, совпадающей с введенным текстом (это работает).
Довольно странный алгоритм поиска:ввести символ"а", который содержится во многих фамилиях,и получить список который будет незначительно сокращен в сравнении с полным перечнем всех ФИО.Если же учесть что поле содержит 3 слова-фамилия,имя,отчество(хотя это должны быть 3 поля)такой поиск приводит в недоумение.
может поиск организовать так?
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737413
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургстроку для источника строк (вообще строки запросов в коде VBA) формируй правильно.
В представленной в примере пропущен пробел при разбивке на две подстроки.
Так-то не должно работать.

..."'.')" _<-тут нет пробела
тут тоже нет -> & "AS ...
В результате будет -> ....)AS ...Это нормально, работать будет.
Скобка является разделителем.
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737430
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle, предпочитаю не экспериментировать. Должен быть пробел, будьте добры поставить. А то потом разные неожиданные ошибки.
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737683
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Перебил строку запроса, работает.
Код: vbnet
1.
2.
3.
4.
Me.FActor.RowSource = "SELECT OffID,(People.FName &" & "' '" & "& Left(People.LName,1) &" & "'.'" & "& Left(People.PName,1) &" & "'.')" _
        & "AS FIO FROM People INNER JOIN Officers ON People.PeopleID = Officers.PeID " _
        & "WHERE (People.FName &" & "' '" & "&   Left(People.LName,1) &" & "'.'" & "& Left(People.PName,1) &" & "'.') like '*" & f & "*' " _
        & "ORDER BY People.FName
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737704
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LekksВсем спасибо. Перебил строку запроса, работает.
А как насчет отладки кода? :)) 21735653
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737742
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkManLekksВсем спасибо. Перебил строку запроса, работает.
А как насчет отладки кода? :)) 21735653

В дебагере проверил. Все как хотелось. И переменная и роусурс.
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737743
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lekks, зачем столько амперсандов? половина не нужна, я же написал строку
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737744
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lekks, в твоей строке, все что не в начале строк чёрные, выкинь. Ну и кавычки тоже.
...
Рейтинг: 0 / 0
После обновления пустое поле комбобокса
    #39737756
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургLekks, в твоей строке, все что не в начале строк чёрные, выкинь. Ну и кавычки тоже.

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


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