Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка записей в подчиненной форме
 
 автор: Мария   (11.09.2008 в 13:25)   личное сообщение
 
 

Здравствуйте!
Снова обращаюсь с просьбой о помощи.
В одной из моих таблиц (Таблица1) имеется поле КодТемы, для которого создана подстановка (поле со списком) данных из поля Тема другой таблицы (Таблица2). Между Таблицами создана связь по полю КодТемы. При открытии Таблицы1 в поле КодТемы отображается сама Тема.
На основе Таблицы1 я создала подчиненную форму. У меня не получается программно отсортировать записи в поле КодТемы (в котором отображается сама тема) по алфавиту. Пробовала в качестве источника данных для формы использовать не саму Таблицу1, а запрос из Таблицы1 и Таблицы2 со связью по полю КодТемы, сортируется прекрасно, но исчезает возможность редактирования записей в подчиненной форме. Что можно сделать?
У меня Access 2000. Спасибо!

  Ответить  
 
 автор: час   (11.09.2008 в 14:40)   личное сообщение
 
 

Попробуйте в основной форме
Me.Form.OrderBy = "КодТемы "
'Me.OrderBy = "КодТемы "

  Ответить  
 
 автор: Мария   (11.09.2008 в 14:46)   личное сообщение
 
 

Я так пробовала. Сортирует не по алфавиту (поле Тема), а по числам в поле КодТемы .

  Ответить  
 
 автор: час   (11.09.2008 в 14:55)   личное сообщение
 
 

Попробуйте в основной форме
Me.Form.OrderBy = "поле тема "
или создайте поле "тема", сделайте его и в него нужные для сортировки данные
или "не выводить на экран"

  Ответить  
 
 автор: Мария   (11.09.2008 в 14:58)   личное сообщение
 
 

Не получается, у меня в источнике данных формы нет этого поля. Только КодТемы с подстановкой. Кнопкой сортировки на панели инструментов прекрасно сортирует, а программно - ну никак. А при попытке добавить это поле в источник данных запрещает редактирование.

  Ответить  
 
 автор: час   (11.09.2008 в 15:00)   личное сообщение
 
 

а может имя поля не такое как источник данных?
аещё Me.Form.OrderByon кажется включить сортировку

а вот
переносим фильтр и сортировку формы
Me.FilterOn = True ' включить фильтрацию
Me.Filter = Forms!frmНарушения.Filter
Me.OrderByOn = True ' включить сортировку
Me.OrderBy = Forms!frmНарушения.OrderBy

  Ответить  
 
 автор: Pasat   (11.09.2008 в 15:24)   личное сообщение
 
 

у меня в источнике данных формы нет этого поля
ИМХО нужно просто добавить поле с названием темы в источник данных формы и сортировать записи формы по этому полю (сортировку задайте в запросе - источнике данных формы). А само поле с названием темы в форму можно не добавлять

  Ответить  
 
 автор: час   (11.09.2008 в 15:27)   личное сообщение
 
 

А вот она пишет :
при попытке добавить это поле в источник данных запрещает редактирование.
Там чёта с этими подстановками заморочки.
А Вам обязательно в таблицах эти подстановки нужны??
может лучше на форме выбирать будете из поля со списком или из списка.

или мы Pasat - с тобой вдвоём уже разговариваем

  Ответить  
 
 автор: Pasat   (11.09.2008 в 15:29)   личное сообщение
 
 

сори не заметил

Добаленно
Попробуйте в запросе источнике данных формы установить тип рекордсета = Dynaset (Inconsistent Updates). Должна появиться возможность добавлять/редактировать записи. Но как написано в литературе такой подход нужно использывать осторожно и тщательно тестировать

  Ответить  
 
 автор: Мария   (11.09.2008 в 17:16)   личное сообщение
 
 

Честно говоря, не совсем поняла, что имеется в виду.

От подстановки отказаться не пробовала, пользователи к ней привыкли. Может быть и в этом дело. Я думала, проблема в том, что поле, по которому нужно сортировать в другой таблице, и не пробовала удалять подстановку.
Пыталась поместить на форму поле с источником данных DLookup("Тема", "Таблица2", УсловиеОтбора), но все стало жутко тормозить.

  Ответить  
 
 автор: Pasat   (11.09.2008 в 17:30)   личное сообщение
 
 

Пробовала в качестве источника данных для формы использовать не саму Таблицу1, а запрос из Таблицы1 и Таблицы2 со связью по полю КодТемы, сортируется прекрасно, но исчезает возможность редактирования записей в подчиненной форме. Что можно сделать?
Попробуйте в запросе источнике данных формы установить тип рекордсета = Dynaset (Inconsistent Updates). Должна появиться возможность добавлять/редактировать записи. Но как написано в литературе такой подход нужно использывать осторожно и тщательно протестировать

Добавлено
Если в запросе толко 2 таблицы (таблица1 и таблица2), то в схеме базы данных создайте связь один ко многим между этими таблицами.
Возможность добавлять/редактировать записи в таком запросе должна сохраниться т.е. тип рекордсета может оставаться = Dynaset

  Ответить  
 
 автор: час   (11.09.2008 в 20:10)   личное сообщение
 
 

хорошо бы сюда на форум базу Вашу положить - тогда бы многое прояснилось.

  Ответить  
 
 автор: Мария   (12.09.2008 в 11:37)   личное сообщение
94 Кб.
 
 

Вот, сделала выжимку из своего проекта. Форма "ПодсказкаПоПлануКомплектования" - основная, из которой нужно делать сортировку подчиненной "ГруппыПодчиненная". Сейчас там все работает, но нельзя редактировать записи. Источник данных подчиненной формы - запрос со связью двух таблиц - не дает возможности редактирования.
Я создала еще Запрос1, где добавлено поле Тематика через DLookup из таблицы "ТематикаКурсов", редактирование там есть, но на многих компьютерах этот запрос работает оооочень медленно. Пользователи думают, что все зависло и перезагружаются.
Буду очень благодарна, если Вы посмотрите мой файл.

  Ответить  
 
 автор: час   (12.09.2008 в 11:52)   личное сообщение
 
 

DLookup - это у всех медленно , потому его в запросах избегают, особливо при большом объёме данных.
А по какому полю надо сортировать
в подчинённой (ГруппыПодчиненный)?
по "Тематика" не получиться....

  Ответить  
 
 автор: час   (12.09.2008 в 12:05)   личное сообщение
 
 

//Источник данных подчиненной формы - запрос со связью двух таблиц - не дает возможности
//редактирования
каких двух?

  Ответить  
 
 автор: Мария   (12.09.2008 в 12:09)   личное сообщение
33 Кб.
 
 

Группы и ТематикаКурсов из моего файла.

Вообще цель была - сортировать именно по тематике. Удивительно, что из некоторых других таблиц мне удается создавать редактируемые запросы, используя подобную связь. Причем я не могу понять, почему в одном случае это работает, а в другом - нет. Вот, прикладываю тот же свой пример, в котором еще одна таблица и, на мой взгляд, такой же запрос (Запрос2) - но он редактируется.

  Ответить  
 
 автор: час   (12.09.2008 в 12:09)   личное сообщение
27 Кб.
 
 

Вот посмотрите сортирует...

  Ответить  
 
 автор: час   (12.09.2008 в 12:13)   личное сообщение
 
 

Код тематики - поле подстановки.
Как его редактировать?
В исходной таблице видимо.

  Ответить  
 
 автор: Мария   (12.09.2008 в 12:19)   личное сообщение
 
 

Собственно его и не нужно редактировать. Обычно исправления вносят в поля со стоимостью обучения и датами. А КодТематики пользователи все равно не знают - но его можно было бы при необходимости выбрать из списка.

  Ответить  
 
 автор: Мария   (12.09.2008 в 12:17)   личное сообщение
 
 

Сортирует... Но она и раньше у меня сортировала. Я не могу получить одновременно возможность и сортировки по полю Тематика и редактирования записей в форме ГруппыПодчиненная. Только что-то одно - пожалуйста, а одновременно - никак. Три дня уже мучаюсь.

  Ответить  
 
 автор: час   (12.09.2008 в 12:19)   личное сообщение
 
 

А что например редактировать надо?

  Ответить  
 
 автор: Мария   (12.09.2008 в 12:21)   личное сообщение
 
 

Стоимость и ВалютнаяСтоимость чаще всего.

  Ответить  
 
 автор: час   (12.09.2008 в 12:32)   личное сообщение
28 Кб.
 
 

вот так посмотри...

  Ответить  
 
 автор: Мария   (12.09.2008 в 12:52)   личное сообщение
 
 

Открыла у себя форму 1, но записи редактировать не удается и кнопка добавления новой записи неактивна. А у Вас, как я поняла, все работает. Может у меня что-то настроено не так в Access. Не могу понять, в чем проблема.

  Ответить  
 
 автор: час   (12.09.2008 в 13:17)   личное сообщение
 
 

форму 1 надо выкинуть

  Ответить  
 
 автор: Мария   (12.09.2008 в 13:21)   личное сообщение
 
 

А что делать дальше?

  Ответить  
 
 автор: час   (12.09.2008 в 13:30)   личное сообщение
 
 

Запустить основную
Выбрать год 2006
Править валюту
Сортировать........

  Ответить  
 
 автор: час   (12.09.2008 в 13:35)   личное сообщение
26 Кб.
 
 

Вот выкинул Форму1

  Ответить  
 
 автор: Мария   (12.09.2008 в 14:32)   личное сообщение
 
 


Так здесь у формы ГруппыПодчиненная источник данных Запрос1. Он с Dlookup-ом, по 5 минут думает при каждом обращении (в основной базе данных много). Получается, это единственный путь?

  Ответить  
 
 автор: час   (12.09.2008 в 14:36)   личное сообщение
 
 

а напомни - зачем нам этот DUCLOOP

  Ответить  
 
 автор: Мария   (12.09.2008 в 14:42)   личное сообщение
 
 

Dlookup-ом я подгружаю из таблицы ТематикаКурсов поле Тематика, которого нет в таблице Группы (там только КодТематики). Это единственный способ, который мне удалось обнаружить, чтобы можно было и сортировать записи по этому полю и редактировать их. Но он медленно работает. Я пытаюсь с Вашей помощью найти другое решение.

  Ответить  
 
 автор: час   (12.09.2008 в 14:49)   личное сообщение
27 Кб.
 
 

Вот я убрал этот dlook

  Ответить  
 
 автор: час   (12.09.2008 в 14:51)   личное сообщение
 
 

В след. раз мари, с самых первых шагов создания базы заходите смело на форум и описывайте задачу, а по мере роста базы задавайте вопросы - лады?
Можно сделать проще бе зо всех этих фильтров......

  Ответить  
 
 автор: Мария   (12.09.2008 в 16:55)   личное сообщение
 
 

Спасибо. Мне уже неудобно занимать Ваше время, но у меня так и не работает сортировка по тематике. В Вашем запросе (Запрос1) 2 последних поля Тематика и КодТематики на моем компьютере всегда пустые, поэтому сортировка может быть и работает, но ничего не сортирует. Пытаюсь сортировать своими элементами управления в форме ПодсказкаПоПлануКомплектования.

А как можно то же самое без фильтров?

  Ответить  
 
 автор: час   (12.09.2008 в 16:59)   личное сообщение
 
 

Ничё не понимаю........
как так
конечно компы у нас разные, но...............
Что за туртом.
Может ещё раз отжимку пришлёте?(выложите)
**************************************************************
тока я ухожу домой - а там не знай как сложится с компом.........будет время нет, ли........

  Ответить  
 
 автор: Мария   (12.09.2008 в 17:15)   личное сообщение
 
 


Все, разобралась. У меня была ошибка в структуре данных таблицы ТематикаКурсов. Оказалось, что там поле КодТематики не было уникальным. Поставила нужный атрибут и все заработало как надо.
Большое спасибо за помощь. Простите, что отняла у Вас столько времени .

  Ответить  
 
 автор: час   (13.09.2008 в 10:30)   личное сообщение
 
 

УМНИЦА!!!

  Ответить  
 
 автор: Мария   (12.09.2008 в 18:02)   личное сообщение
 
 

СПАСИБО ВСЕМ!!!!!!!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList