|
|
|
| Есть ленточная форма, которая содержит поле со списком и еще несколько полей. К полю со списком прикреплен запрос из 5 столбцов. Ситуация такая: при выборе значения из поля со списком данные из остальных столбцов списка должны "попадать" в остальные поля формы...
Что-то я никак не могу сдвинуться с этой мертвой точки... Помогите, пожалуйста! | |
|
| |
|
|
|
| Бросьте вы это "безобразие".
Почитайте о нормализации баз данных.
Приведите свою в соответствие 3 НФ.
Тогда такие "безобразия" не понадобятся.
Это сурьезно. | |
|
| |
|
|
|
| А можно хоть какой-нибуть совет в этом направлении? | |
|
| |
|
|
|
| Если под "этим" подразумевалось то, что сейчас имеется, то:
Используйте свойства поля со списком 'COLUMN'и 'AfterUpdate'. | |
|
| |
|
|
|
| О, чудо! Все заработало именно так, как мне нужно!
Спасибо Вам большое! | |
|
| |
|
|
|
| А как обновить данные в запросе, присоединенном к полю со списком при переходе на новую строчку в ленточной форме? | |
|
| |
|
|
|
| Наверное так:
Private Sub Form_Current()
If Me.NewRecord Then Me.cmb1.Requery
End Sub
|
Если под "новой строчкой" подразумевалась "новая запись" | |
|
| |
|
|
|
| Теперь все просто замечательно! Но.... тормозит, зараза
Данных в запросе около 15 тыс. | |
|
| |
|
|
|
| Попробуйте отключить автоподстановку и ограничить набор данных запроса.
Неужели они все одновременно нужны в поле со списком? | |
|
| |
|
|
|
| К сожалению, как раз ради автоподстановки и организовано поле со списком, а данные - это перечень товара, причем цены разные и все они 15 тыс. нужны! | |
|
| |
|
|
|
| Наверное было бы правильнее для выбора использовать форму - справочник товара, с возможной группировкой по группам товара, другим характеристикам. | |
|
| |
|
|
|
| Изначально так и было, но заказчику захотелось, чтобы все сразу, в одном окне. А то ведь дополнительное окно формы вызывать нужно, затем товар искать и т.д.
А так сразу по первой букве уже и название есть, и вся инф-ция о товаре... | |
|
| |
|
|
|
| "Жираф большой, ему видней"
В смысле: заказчик типа всегда прав. | |
|
| |
|
|
|
| Иногда заказчику надо уметь говорить "нет", иначе второй раз он к вам не обратится. | |
|
| |
|
|
|
| Спасибо всем, кто искренне мне помогает! Я вот опять попрошу у вас помощи! Как лучше всего организовать поиск записи в форме? Можно добавить поле сосписком и выбирая в нем значение (по первым буквам, все по алфавиту) искать соответствующую запись в форме. Но мне это не совсем подходит. Как бы сделать так, чтобы в какое-то отдельное поле вводить символы и при этом нужная запись в форме ставала текущей? Это у меня получается, но только по первому символу, вот (на событие ИзменениеПоля13 вешаю
Me.RecordsetClone.FindFirst "Mid([НаименТовара],1,1) = '" & Mid(Me.Поле13.Text, 1, 1) & "'"
Me.Bookmark = Me.RecordsetClone.Bookmark )
А так чтобы по мере ввода символов в поле находилась соответствующая запись? | |
|
| |
|
|
|
| Может так:
Private Sub fldFind_Change()
With Me.RecordsetClone
.FindFirst "ItemName Like '" & Me.fldFind.Text & "*'"
If Not .EOF Then Me.Bookmark = .Bookmark
End With
End Sub
|
| |
|
| |
|
|
|
| Спасибо за ответ, но это как раз работает только по первому символу (также как у меня). Вводим символ 'м', сразу появляется запись на 'м...' Затем вводим 'о' и опять появляется запись на 'о...' а не 'мо..' А надо, чтобы 'мо...' | |
|
| |
|
|
|
| Вау! Это я уже торможу (вообще-то я всегда торможу, но сейчас особенно, потому и обращаюсь к вам за помощью) Все работает, как надо! Но только затруднительно теперь символы в поле вводить, они выделением светятся и пропадают при вводе следующего...., только если мышкой убирать выделение, но этого никто делать не будет. Их нужно все подряд вводить один за одним, а так не получается... | |
|
| |
|
|
|
| Загляни сюда и скушай сникерс
http://hiprog.com/index.php?option=com_content&task=view&id=251661615&Itemid=35
И проверь не нажата ли кнопочка INS | |
|
| |
|
|
|
| Если б вы знали сколько я уже этих сникерсов скушала с шеколадками и булочками, сейчас вот палочки жую....
И кажется не зря, балуюсь со свойством .SelStart, и вроде бы получается! | |
|
| |
|
|
|
| А страничка очень интересная, спасибо за ссылочку | |
|
| |
|
|
|
| А так:
Private Sub fldFind_Change()
With Me.RecordsetClone
.FindFirst "ItemName Like '" & Me.fldFind.Text & "*'"
If Not .EOF Then
Me.Bookmark = .Bookmark
With Me.fldFind: .SelStart = Len(.Text) + 1: End With
End If
End With
End Sub
|
| |
|
| |
|
|
|
| УРА! Да, все получилось, Спасибо Lukas! Я к вашему предыдущему примеру добавила строчки
If Me.Поле13.SelLength > 0 Then
Me.Поле13.SelStart = Me.Поле13.SelLength
End If
И теперь все работает, остается все отшлифовать чтоб красиво было. Конечно не совсем так как хотел клиент, но в данном случае мне кажется это неплохой вариант. Спасибо всем! Я не прощаюсь, разработка еще далеко не закончена... | |
|
| |