bel-olya
Гость
|
|
« : 10-10-2008 09:52 » |
|
Необходимо, что бы по введенной букве в список(findit) выводились названия покупателей(Pokypatel) на эту букву. Private Sub findit_Change() Dim f As String Dim poisk As String poisk = "select * from [Покупатели]" If Not Nz(Me.findit.Text, "") = "" Then f = Me.findit.Text poisk = poisk + " WHERE " & " [Pokypatel] LIKE '" + f + "*'" & "ORDER BY Pokypatel" End If If Not Me.findit.RowSource = poisk Then Me.findit.RowSource = poisk End If End Sub Однако в списке появляется толька первое название из названий на нужную букву. Где не правильно? Буду очень благодарна
|
|
« Последнее редактирование: 13-10-2008 07:45 от Алексей1153++ »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #1 : 10-10-2008 10:04 » |
|
а так poisk = poisk + " WHERE [Pokypatel] LIKE '" + f + "*' ORDER BY Pokypatel"
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #2 : 10-10-2008 10:10 » |
|
а где сам селект выполняется poisk - это только формирование запроса
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
bel-olya
Гость
|
|
« Ответ #3 : 10-10-2008 10:38 » |
|
а так poisk = poisk + " WHERE [Pokypatel] LIKE '" + f + "*' ORDER BY Pokypatel"
тоже самое а где сам селект выполняется poisk - это только формирование запроса
а где он должен выполнятся?
|
|
|
Записан
|
|
|
|
bel-olya
Гость
|
|
« Ответ #4 : 10-10-2008 11:00 » |
|
Приблизительно поняла в чем дело. Когда набираешь в поле первую букву в самом поле появляется первое найденное название, и в списке одно название. Но если удалить то, что появляется автоматически, то в списке висят названия, которые нужны. Как сделать по-нормальному? Я, наверное, по-тупому изъясняюсь, но извините...как умею.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #5 : 10-10-2008 11:02 » |
|
я не знаю где он должен выполняться findit.RowSource - что это такое?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
bel-olya
Гость
|
|
« Ответ #6 : 10-10-2008 11:06 » |
|
findit.RowSource - что это такое?
findit.RowSource - это источник строк для списка в "поле с выпадающем списком" - findit
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #7 : 10-10-2008 11:07 » |
|
bel-olya, ты сам(а) пишешь, или цитируешь уже готовый код
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
bel-olya
Гость
|
|
« Ответ #8 : 10-10-2008 11:12 » |
|
Сама
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #9 : 10-10-2008 11:21 » |
|
bel-olya, если сама, то в какой части приведенного тобой кода - выполняется! запрос
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
bel-olya
Гость
|
|
« Ответ #10 : 10-10-2008 11:31 » |
|
База в MSAccess. В объекте "поле со списком" в свойствах есть вкладка Данные->Источник строк. как я понимаю, там может находится поле(или поля) из таблици или запрос.
|
|
|
Записан
|
|
|
|
bel-olya
Гость
|
|
« Ответ #11 : 10-10-2008 11:32 » |
|
а программно это RowSuorce
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #12 : 10-10-2008 11:47 » |
|
Forms!Employees!cmboNames.RowSourceType = "Table/Query" Forms!Employees!cmboNames.RowSource = "EmployeeList"
свойство RowSourceType чему равно? а если так Me.findit.RowSource = "poisk" You can use the RowSource property (along with the RowSourceType property) to tell Microsoft Access how to provide data to a list box, a combo box, or an unbound OLE object such as a chart. For example, to display rows of data in a list box from a query named CustomerList, set the list box's RowSourceType property to Table/Query and its RowSource property to the query named CustomerList.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
bel-olya
Гость
|
|
« Ответ #13 : 10-10-2008 12:06 » |
|
дело не втом, что запрос не выполняется. Запрос как раз выполнятся. При нажатии первой буквы выполняется запрос, и в поле автоматически подставляется найденное первое название? приходится каждый раз удалять в поле ту часть которая находится автоматически, что бы стояла одна буква и тогда в списке есть все записи на эту букву.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #14 : 12-10-2008 04:46 » |
|
так нужно помнить, что было введено для начала поиска, и что было приписано , когда что то нашлось. И в зависимости от надобности нужную часть оставлять
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #15 : 13-10-2008 04:36 » |
|
bel-olya у Вас все правильно, выставьте только в контроле св-во "Автоподстановка" в false и все в принципе ответ Вы уже и сами нашли
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
bel-olya
Гость
|
|
« Ответ #16 : 13-10-2008 05:39 » |
|
Всем спасибо!
|
|
|
Записан
|
|
|
|
HandKot
Молодой специалист
Offline
|
|
« Ответ #17 : 14-10-2008 05:13 » |
|
кстати, если все-таки св-во Автоподстановка отсавить в true, то тода надо делать так poisk = poisk + " WHERE " & " [Pokypatel] LIKE '" + Left(f, Me.findit.SelStart) + "*'" & "ORDER BY Pokypatel"
|
|
|
Записан
|
I Have Nine Lives You Have One Only THINK!
|
|
|
bel-olya
Гость
|
|
« Ответ #18 : 14-10-2008 11:12 » |
|
HandKot, БОЛЬШОЕ СПАСИБО!
|
|
|
Записан
|
|
|
|
|