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

Форум: MS ACCESS

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

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

 
 

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

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

тема: И снова столбцы...
 
 автор: SuperSem   (20.10.2009 в 18:50)   личное сообщение
 
 

У меня вот такой вопрос, Можно ли при открытии формы выбрать кол-во столбцов, и при этом сформировать таблицу на этой же форме. Вот у меня задание такое, на форме есть список, который содержит названия групп, при выборе определенной группы, в другом списке на это же форме выбираются все дисциплины, которые есть у данной группы. Можно ли сделать так, что бы по нажатию на на название дисциплины, создавалась колонка таблицы с таким же названием....

  Ответить  
 
 автор: osmor   (20.10.2009 в 19:53)   личное сообщение
 
 

мне кажется вы идете не в ту сторону
http://hiprog.com/index.php?option=com_content&task=view&id=693

  Ответить  
 
 автор: SuperSem   (20.10.2009 в 20:06)   личное сообщение
 
 

Фильтрацию списка я уже сделал... Самое главное это создание столбцов....

  Ответить  
 
 автор: osmor   (20.10.2009 в 22:43)   личное сообщение
 
 

динамическое создание полей таблиц в правильно спроектированном приложении в 99% ненужно.
IMHO, если у вас возникла желание (необходимость) создавать поля в таблице в ответ на действия пользователя с 99% вероятностью вы на ложном пути.

Про создание полей см. Help по
sql - alter table
или по adox
http://hiprog.com/index.php?option=com_content&task=view&id=251661555

или по dao - tabledef

  Ответить  
 
 автор: SuperSem   (20.10.2009 в 22:47)   личное сообщение
 
 

Хорошо, спасибо, постараюсь найти другой путь

  Ответить  
 
 автор: kot_k_k   (21.10.2009 в 09:03)   личное сообщение
 
 

Точно нужен другой путь.

Должна быть табла Дисциплина_Группы где есть Поле Дисциплина, Группа и еще че хотите.
Вот из этого списка СТРОК и выбираются дисциплины групп.
а если делать таблу с полями Группа Дисциплина1, Дисциплина2, Дисциплина3 ....ДисциплинаN довольно трудно потом.
Правда если сделать вариант таблу содержащую ВСЕ дисциплины сразу и втыкать галки в поля которые есть у Группы - то вариант. тогда на форме пишем Все столбцы а для текущей записи видимыми ставим только поля с галкой.

  Ответить  
 
 автор: SuperSem   (21.10.2009 в 09:46)   личное сообщение
 
 

Да я тоже этот вариант рассматриваю сейчас. Сейчас буду пробовать ALTER TABLE, может она спасет мир

  Ответить  
 
 автор: kot_k_k   (21.10.2009 в 09:50)   личное сообщение
 
 

Зачем усложнять себе жизнь?
всегда можно создать временную таблу и заполнить ее потоком, вывести на форму-отчет в том призвезденном виде который нужен юзеру.
Названия дисциплин могут меняться, какие-то удалят, новые введут табла разрастется в ширину хз как, мало того с названиями столбцов гемор - да мона сделать столбцы типа Д1, Д2, ДN, и таблу с где храним названия дисциплин. но данный подход не правильный.
Можно ваще обойтить 3-мя таблами, есть такой подход Entity-Attribute-Value.
http://forum.sources.ru/index.php?showtopic=277383

  Ответить  
 
 автор: SuperSem   (21.10.2009 в 10:00)   личное сообщение
 
 

Вот на счет временной таблы... как ее правильно построить ??? с помощью чего?

  Ответить  
 
 автор: kot_k_k   (21.10.2009 в 10:06)   личное сообщение
31 Кб.
 
 

Create table, пример создает таблу с любым кол-во полей, любого названия
так можем создавать таблу содержащую необходимые поля, НО для нее нужно построить от хитрый отчет или форму с пустыми полями коотрые заполняются программно из таблы.

Возник вопрос - опишу суть проблемы -конкретно что хочет юзер? может это мона по другому.

  Ответить  
 
 автор: SuperSem   (21.10.2009 в 10:46)   личное сообщение
46 Кб.
 
 

Я делаю журнал "Бегунок" для универа. Там смысл такой, что у каждой группы, каждый день разное кол-во пар, Вот пример, Там на форме(ОSN) то есть это будет первый столбец, а следующими, должны быть дисциплины.

  Ответить  
 
 автор: kot_k_k   (21.10.2009 в 11:03)   личное сообщение
 
 

1. Базу переделать однозначно.
- главное используйте поле счетчик, отдельное цифровое поле!!
- номерация групп через 10 лет обычно повторяется!!!! 41-ПГС скорее 4-я специальность год поступления 2001, в 2011 году группа бедет называться также.
- нужно делать не текстовое поле а связанное поле со списком, т.к. если изменить название группы-фио и т.д. то поле в остальных таблах автоматом не поменяется!!! иил нужно писать офигительное обновление!!!

2. если вкурил правильно то нужно учитывать отценки или посещение:
нужно создать таблу с Группа, Дисциплина, День_недели.
и от нее плясать!!!!

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

  Ответить  
 
 автор: kot_k_k   (21.10.2009 в 11:15)   личное сообщение
11 Кб.
 
 

вот посмотри, где-то так

  Ответить  
 
 автор: kot_k_k   (21.10.2009 в 11:35)   личное сообщение
 
 

еще пара мыслей.
1. студет может перевестись, пропустить год!!! нужно добавить дату и галку "Активно" (чтоб не вычислять последнюю запись для студента) для таблы Студет-Группа.
2. Факультет.
3. Таблу Фио нужно изменить - ФИО_сокращен (Иванов И. И.), Фамилия, Имя, Отчество, день рождения, пол и т.д. - для отличия полных тезок.

  Ответить  
 
 автор: Гоблин   (21.10.2009 в 22:04)   личное сообщение
43 Кб.
 
 

Люди. По схожей проблеме. Есть SQL запрос. Что надо, что бы его запустить и на экран вывести. Прилагаю пример по разбираемому тут вопросу. Типа запрос формируется в поле, а как его потом использовать? Вы то уж наверняка знаете. Синтаксис блин. И префикс мать его.

  Ответить  
 
 автор: osmor   (22.10.2009 в 08:56)   личное сообщение
 
 

help по Querydef
если нужно создать запрос
Currentdb.CreateQueryDef("ИмяЗапроса","текс запроса")
Если изменить существующий
currentdb.QueryDefs("ИмяЗапроса").SQL = "Текст запроса"

Открыть можно Docmd.Open .... не помню вроде OpenQuery
или подсунуть как источник строк формы
или выгнать в Excel

  Ответить  
 
 автор: kot_k_k   (22.10.2009 в 09:10)   личное сообщение
 
 

вот запрос -
SELECT [Математика] FROM [Таблица3];

а вот таблица3:

Код
Дисциплина
Группа

вопрос - где в таблице поле Математика?
в таблице только поле дисциплина


"select Дисциплина from таблица3 where Дисциплина='Математика'";



но правильнее писать


"select Дисциплина from таблица3 where Код=" & me.Код;



Замечание таблица3 должна иметь Дисциплину из таблицы4 где находится перечень Дисциплин, при таком задании запроса

"select Дисциплина from таблица3 where Дисциплина='Математика'";

получим все группы с дисциплиной Математика
желательно чтобы таблица1 тоже имела поле Код

  Ответить  
 
 автор: Гоблин   (22.10.2009 в 13:58)   личное сообщение
 
 

Блин правы оба. Табла дисциплин ушла блин.
Это запрос на создание таблицы пытался создать. Поля типа выбираем, накидываем создавая запрос. (Вроде как схоже с проблемой описанной выше). Ща восстанавливать буду. Спасибо.

  Ответить  
 
 автор: kot_k_k   (22.10.2009 в 14:25)   личное сообщение
 
 

конда вернется табла Дисциплина, ей привет передай

вопрос зачем создаватьтаблицЫ с полями Математика, Физика и т.д.????

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

Это образно. Прилепил к данному вопросу.
У меня следующее. В базе заполняются таблицы. Потом требуется отчет составить по статистике. Предложил сводную таблу. Все что надо в полях, остальное в фильтрах. Распечатка из экселя. Вроде прошло. Однако хотят что бы из списка все выбирать и в виде таблицы обычной смотреть. Как-то так начинаю мультиселект осваивать. Другое в голову ничего не приходит пока.
Странности одних приводят к прогрессии других.

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