|
|
|
| Здравствуйте!
Снова обращаюсь с просьбой о помощи.
В одной из моих таблиц (Таблица1) имеется поле КодТемы, для которого создана подстановка (поле со списком) данных из поля Тема другой таблицы (Таблица2). Между Таблицами создана связь по полю КодТемы. При открытии Таблицы1 в поле КодТемы отображается сама Тема.
На основе Таблицы1 я создала подчиненную форму. У меня не получается программно отсортировать записи в поле КодТемы (в котором отображается сама тема) по алфавиту. Пробовала в качестве источника данных для формы использовать не саму Таблицу1, а запрос из Таблицы1 и Таблицы2 со связью по полю КодТемы, сортируется прекрасно, но исчезает возможность редактирования записей в подчиненной форме. Что можно сделать?
У меня Access 2000. Спасибо! | |
|
| |
|
|
|
| Попробуйте в основной форме
Me.Form.OrderBy = "КодТемы "
'Me.OrderBy = "КодТемы " | |
|
| |
|
|
|
| Я так пробовала. Сортирует не по алфавиту (поле Тема), а по числам в поле КодТемы . | |
|
| |
|
|
|
| Попробуйте в основной форме
Me.Form.OrderBy = "поле тема "
или создайте поле "тема", сделайте его и в него нужные для сортировки данные
или "не выводить на экран" | |
|
| |
|
|
|
| Не получается, у меня в источнике данных формы нет этого поля. Только КодТемы с подстановкой. Кнопкой сортировки на панели инструментов прекрасно сортирует, а программно - ну никак. А при попытке добавить это поле в источник данных запрещает редактирование. | |
|
| |
|
|
|
| а может имя поля не такое как источник данных?
аещё Me.Form.OrderByon кажется включить сортировку
а вот
переносим фильтр и сортировку формы
Me.FilterOn = True ' включить фильтрацию
Me.Filter = Forms!frmНарушения.Filter
Me.OrderByOn = True ' включить сортировку
Me.OrderBy = Forms!frmНарушения.OrderBy | |
|
| |
|
|
|
| у меня в источнике данных формы нет этого поля
ИМХО нужно просто добавить поле с названием темы в источник данных формы и сортировать записи формы по этому полю (сортировку задайте в запросе - источнике данных формы). А само поле с названием темы в форму можно не добавлять | |
|
| |
|
|
|
| А вот она пишет :
при попытке добавить это поле в источник данных запрещает редактирование.
Там чёта с этими подстановками заморочки.
А Вам обязательно в таблицах эти подстановки нужны??
может лучше на форме выбирать будете из поля со списком или из списка.
или мы Pasat - с тобой вдвоём уже разговариваем | |
|
| |
|
|
|
| сори не заметил
Добаленно
Попробуйте в запросе источнике данных формы установить тип рекордсета = Dynaset (Inconsistent Updates). Должна появиться возможность добавлять/редактировать записи. Но как написано в литературе такой подход нужно использывать осторожно и тщательно тестировать | |
|
| |
|
|
|
| Честно говоря, не совсем поняла, что имеется в виду.
От подстановки отказаться не пробовала, пользователи к ней привыкли. Может быть и в этом дело. Я думала, проблема в том, что поле, по которому нужно сортировать в другой таблице, и не пробовала удалять подстановку.
Пыталась поместить на форму поле с источником данных DLookup("Тема", "Таблица2", УсловиеОтбора), но все стало жутко тормозить.
| |
|
| |
|
|
|
| Пробовала в качестве источника данных для формы использовать не саму Таблицу1, а запрос из Таблицы1 и Таблицы2 со связью по полю КодТемы, сортируется прекрасно, но исчезает возможность редактирования записей в подчиненной форме. Что можно сделать?
Попробуйте в запросе источнике данных формы установить тип рекордсета = Dynaset (Inconsistent Updates). Должна появиться возможность добавлять/редактировать записи. Но как написано в литературе такой подход нужно использывать осторожно и тщательно протестировать
Добавлено
Если в запросе толко 2 таблицы (таблица1 и таблица2), то в схеме базы данных создайте связь один ко многим между этими таблицами.
Возможность добавлять/редактировать записи в таком запросе должна сохраниться т.е. тип рекордсета может оставаться = Dynaset | |
|
| |
|
|
|
| хорошо бы сюда на форум базу Вашу положить - тогда бы многое прояснилось. | |
|
| |
|
94 Кб. |
|
| Вот, сделала выжимку из своего проекта. Форма "ПодсказкаПоПлануКомплектования" - основная, из которой нужно делать сортировку подчиненной "ГруппыПодчиненная". Сейчас там все работает, но нельзя редактировать записи. Источник данных подчиненной формы - запрос со связью двух таблиц - не дает возможности редактирования.
Я создала еще Запрос1, где добавлено поле Тематика через DLookup из таблицы "ТематикаКурсов", редактирование там есть, но на многих компьютерах этот запрос работает оооочень медленно. Пользователи думают, что все зависло и перезагружаются.
Буду очень благодарна, если Вы посмотрите мой файл. | |
|
| |
|
|
|
| DLookup - это у всех медленно , потому его в запросах избегают, особливо при большом объёме данных.
А по какому полю надо сортировать
в подчинённой (ГруппыПодчиненный)?
по "Тематика" не получиться.... | |
|
| |
|
|
|
| //Источник данных подчиненной формы - запрос со связью двух таблиц - не дает возможности
//редактирования
каких двух? | |
|
| |
|
33 Кб. |
|
| Группы и ТематикаКурсов из моего файла.
Вообще цель была - сортировать именно по тематике. Удивительно, что из некоторых других таблиц мне удается создавать редактируемые запросы, используя подобную связь. Причем я не могу понять, почему в одном случае это работает, а в другом - нет. Вот, прикладываю тот же свой пример, в котором еще одна таблица и, на мой взгляд, такой же запрос (Запрос2) - но он редактируется. | |
|
| |
|
27 Кб. |
|
| Вот посмотрите сортирует... | |
|
| |
|
|
|
| Код тематики - поле подстановки.
Как его редактировать?
В исходной таблице видимо. | |
|
| |
|
|
|
| Собственно его и не нужно редактировать. Обычно исправления вносят в поля со стоимостью обучения и датами. А КодТематики пользователи все равно не знают - но его можно было бы при необходимости выбрать из списка. | |
|
| |
|
|
|
| Сортирует... Но она и раньше у меня сортировала. Я не могу получить одновременно возможность и сортировки по полю Тематика и редактирования записей в форме ГруппыПодчиненная. Только что-то одно - пожалуйста, а одновременно - никак. Три дня уже мучаюсь. | |
|
| |
|
|
|
| А что например редактировать надо? | |
|
| |
|
|
|
| Стоимость и ВалютнаяСтоимость чаще всего. | |
|
| |
|
28 Кб. |
|
| вот так посмотри... | |
|
| |
|
|
|
| Открыла у себя форму 1, но записи редактировать не удается и кнопка добавления новой записи неактивна. А у Вас, как я поняла, все работает. Может у меня что-то настроено не так в Access. Не могу понять, в чем проблема. | |
|
| |
|
|
|
|
|
| Запустить основную
Выбрать год 2006
Править валюту
Сортировать........ | |
|
| |
|
26 Кб. |
|
| Вот выкинул Форму1 | |
|
| |
|
|
|
|
| а напомни - зачем нам этот DUCLOOP | |
|
| |
|
|
|
| Dlookup-ом я подгружаю из таблицы ТематикаКурсов поле Тематика, которого нет в таблице Группы (там только КодТематики). Это единственный способ, который мне удалось обнаружить, чтобы можно было и сортировать записи по этому полю и редактировать их. Но он медленно работает. Я пытаюсь с Вашей помощью найти другое решение. | |
|
| |
|
27 Кб. |
|
| Вот я убрал этот dlook | |
|
| |
|
|
|
| В след. раз мари, с самых первых шагов создания базы заходите смело на форум и описывайте задачу, а по мере роста базы задавайте вопросы - лады?
Можно сделать проще бе зо всех этих фильтров...... | |
|
| |
|
|
|
| Спасибо. Мне уже неудобно занимать Ваше время, но у меня так и не работает сортировка по тематике. В Вашем запросе (Запрос1) 2 последних поля Тематика и КодТематики на моем компьютере всегда пустые, поэтому сортировка может быть и работает, но ничего не сортирует. Пытаюсь сортировать своими элементами управления в форме ПодсказкаПоПлануКомплектования.
А как можно то же самое без фильтров? | |
|
| |
|
|
|
| Ничё не понимаю........
как так
конечно компы у нас разные, но...............
Что за туртом.
Может ещё раз отжимку пришлёте?(выложите)
**************************************************************
тока я ухожу домой - а там не знай как сложится с компом.........будет время нет, ли........ | |
|
| |
|
|
|
|
Все, разобралась. У меня была ошибка в структуре данных таблицы ТематикаКурсов. Оказалось, что там поле КодТематики не было уникальным. Поставила нужный атрибут и все заработало как надо.
Большое спасибо за помощь. Простите, что отняла у Вас столько времени . | |
|
| |
|
|
|
| УМНИЦА!!! | |
|
| |
|