Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: поиск записей, начинающихся с определённой буквы  (Прочитано 18613 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
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++ » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 10-10-2008 10:04 » 

а так
Код:
poisk = poisk + " WHERE  [Pokypatel] LIKE '" + f + "*' ORDER BY Pokypatel"
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 10-10-2008 11:02 » 

я не знаю где он должен выполняться Улыбаюсь
findit.RowSource - что это такое?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
bel-olya
Гость
« Ответ #6 : 10-10-2008 11:06 » 

findit.RowSource - что это такое?
findit.RowSource - это источник строк для списка в "поле с выпадающем списком" - findit
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 10-10-2008 11:07 » 

bel-olya, ты сам(а) пишешь, или цитируешь уже готовый код
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
bel-olya
Гость
« Ответ #8 : 10-10-2008 11:12 » 

Сама
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #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 » 

дело не втом, что запрос не выполняется. Запрос как раз выполнятся.
При нажатии первой буквы выполняется запрос, и в поле автоматически подставляется
найденное первое название? приходится каждый раз удалять в поле ту часть которая находится автоматически,
что бы стояла одна буква и тогда в списке есть все  записи на эту букву.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 12-10-2008 04:46 » 

так нужно помнить, что было введено для начала поиска, и что было приписано , когда что то нашлось. И в зависимости от надобности нужную часть оставлять
Записан

HandKot
Молодой специалист

ru
Offline Offline

« Ответ #15 : 13-10-2008 04:36 » new

bel-olya
у Вас все правильно, выставьте только в контроле св-во "Автоподстановка" в false и все
в принципе ответ Вы уже и сами нашли
Записан

I Have Nine Lives You Have One Only
THINK!
bel-olya
Гость
« Ответ #16 : 13-10-2008 05:39 » 

Всем спасибо!
Записан
HandKot
Молодой специалист

ru
Offline 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, БОЛЬШОЕ СПАСИБО!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines