Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 26.08.2017, 09:21   #1
klim8
Пользователь
 
Регистрация: 07.08.2016
Сообщений: 15
Репутация: 10
По умолчанию Как сделать чтобы выбранные из списка значения накапливались в поле формы?

Используется
Access 2016

Сценарий:
- вводим первые символы значения из списка;
- список "подкидывает" в строку ввода наиболее подходящее значение из списка;
- наживаем "Ввод";
- Выбранное значение попадает в поле формы "Поле1" через запятую;
и т.д. для остальных значений.

Рисунок (ГИФка) - ссылка

Вопрос.
Как сделать чтобы выбранные в списке значения накапливались в поле формы через запятую?
Значение предполагается использовать: текстовые, числовые, текстовые+числовые.

Рисунок
Вложения
Тип файла: zip vpr_00_pl_nak.zip (32.9 Кб, 6 просмотров)
klim8 вне форума   Ответить с цитированием
Старый 28.08.2017, 09:06   #2
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,021
Репутация: 741

skype: aleksandr.gryb
По умолчанию

Код:

Private Sub znak_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
      If Len(Поле1.Value) > 0 Then
            Поле1 = Поле1 & ", " & znak.Text
        Else
        Поле1 = znak.Text
       End If
    End If
End Sub

как сделать возврат курсора в комбобокс - ищите сами.
__________________
Mailto: media.project@ukr.net
"спасибо" принимаются на webmoney: R676842461689, Z243088649038, U164738001305; AdvancedCash: U853633661253, E181662999107; ПриватБанк.UA
Aleksandr H. вне форума   Ответить с цитированием
Старый 28.08.2017, 13:17   #3
klim8
Пользователь
 
Регистрация: 07.08.2016
Сообщений: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:

Private Sub znak_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
      If Len(Поле1.Value) > 0 Then
            Поле1 = Поле1 & ", " & znak.Text
        Else
        Поле1 = znak.Text
       End If
    End If
End Sub

как сделать возврат курсора в комбобокс - ищите сами.
Что-то не работает.
Плохо разбираюсь...

Добавил возврат:
Me.znak.SetFocus

Добавил проверку на уникальность:
If Поле1 Like "*" & znak.Text & "*" Then

в чём проблема может быть?

Код:

Private Sub znak_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then '
      If Len(Поле1.Value) > 0 Then
                ' проверка на совпадения
                ' If Me.Поле1.Value Like "*" & Me.znak.Text & "*" Then
                If Поле1 Like "*" & znak.Text & "*" Then
                MsgBox "Ошибка ХХХ. Тектс уже существует !!!"
                End If
                ' занесение текста в поле
                Поле1 = Поле1 & ", " & znak.Text
                
                 
                 Me.znak.SetFocus
                                  
        Else
        Поле1 = znak.Text
        Me.znak.SetFocus
       End If
    End If
End Sub



PS
Плохо разбираюсь в VBA, поэтому сделал как понимаю
klim8 вне форума   Ответить с цитированием
Старый 28.08.2017, 13:25   #4
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,021
Репутация: 741

skype: aleksandr.gryb
По умолчанию

Что не работает? Вы хотели: по нажатию Ентер в комбобокс, чтобы текст из єтого комбобокса перемещался в Поле. Код ето и делает.
А проверки на уникальности, игры с фокусом - побочные задания которые не были оглашены в первом сообщении, а значит вы сами их можете решить
__________________
Mailto: media.project@ukr.net
"спасибо" принимаются на webmoney: R676842461689, Z243088649038, U164738001305; AdvancedCash: U853633661253, E181662999107; ПриватБанк.UA
Aleksandr H. вне форума   Ответить с цитированием
Старый 28.08.2017, 15:00   #5
klim8
Пользователь
 
Регистрация: 07.08.2016
Сообщений: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Что не работает?
Прошу прощения, некорректно сформулировал.

Сценарий:
- Поле.znak. Ввёл первые символы фамилии;
- Поле.znak. Нажал Ввод;
- Поле.Поле1. Фамилия полностью прописалась;
- Мышкой возвращаю курсор в Поле.znak;

Вопрос 1
Как сделать чтобы после нажатия "Ввод" и после того как введённая фамилия прописалась Поле.Поле1 курсор возвращался в Поле.znak?
Чтобы можно было вводить следующую фамилию.

Вопрос 2
Как сделать чтобы в Поле.Поле1 нельзя было ввести две одинаковых фамилии?
Проблема в том, что если фамилия вводится и нажимается "Ввод", то появляется окно с сообщением "Ошибка ХХХ. Текст уже существует !!!", а если нажать ещё раз "Ввод", то окно с сообщением пропадает, а фамилия прописывается повторно.

Последний раз редактировалось klim8; 28.08.2017 в 15:05.
klim8 вне форума   Ответить с цитированием
Старый 29.08.2017, 10:40   #6
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,021
Репутация: 741

skype: aleksandr.gryb
По умолчанию

Код:

Private Sub znak_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
       If Len(Поле1.Value) > 0 Then
            If Поле1 Like "*" & Trim(znak.Text) & "*" Then
               If MsgBox("Ошибка ХХХ. Тектс уже существует !!!" & vbNewLine _
                         & "Все равно добавить?", vbOKCancel + vbCritical) = vbOK Then
                    Поле1 = Поле1 & ", " & znak.Text
                End If
            Else
                Поле1 = Поле1 & ", " & znak.Text
            End If
        Else
            Поле1 = znak.Text
        End If
        DoCmd.CancelEvent
    End If
End Sub

__________________
Mailto: media.project@ukr.net
"спасибо" принимаются на webmoney: R676842461689, Z243088649038, U164738001305; AdvancedCash: U853633661253, E181662999107; ПриватБанк.UA
Aleksandr H. вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы при создании формы происходило 2 события? artbotva Общие вопросы Delphi 7 06.05.2012 18:27
как сделать так чтобы при нажатии на ComboBox выводилось поле из таблицы DBGrid? jawa250t БД в Delphi 4 21.04.2012 21:57
Access 2003: как сделать изменяющийся список выбора в зависимости от значения в соседнем поле tanchikb Microsoft Office Access 14 14.01.2010 11:46
Как сделать, чтобы один элемент списка в ComboBox писался в несколько строк? Andr Общие вопросы Delphi 5 15.08.2007 22:24
Скажите как сделать так, чтобы размер формы оставался фиксированным? Faramund Помощь студентам 2 20.03.2007 21:14




05:48.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru