2 / 2 / 2
Регистрация: 04.09.2012
Сообщений: 9
|
|
1 | |
Создание таблицы на основе перебора значений из других таблиц02.11.2014, 20:34. Показов 1742. Ответов 9
Метки нет (Все метки)
Добрый день, уважаемые посетители форма.
Прошу помощи в решении следующего вопроса. Не знаю как к нему подступиться. Необходимо составить бланк задания для курсовых. Курсовой представляет собой расчет напряжения и тока на всех участках цепи. Дана цепь, представленная на рисунке во вложении. На каждом отрезке цепи может быть либо источник напряжения, либо источник тока, либо комплексное сопротивление. При чем в схеме присутствуют 3 источника напряжения и один источник тока, остальные 4 участка - сопротивления. Есть следующие таблицы:
Выходная таблица должна иметь вид: 8 столбцов, содержащих номиналы элементов для каждого из восьми отрезков цепи. Можно ли решить данный вопрос без использования Visual Basic? Если нельзя, то, помогите, пожалуйста, с кодом.
0
|
02.11.2014, 20:34 | |
Ответы с готовыми решениями:
9
Создание таблицы в Access на основе других таблиц Создание таблицы со значениями из других таблиц Создание таблицы на основе данных из нескольких таблиц Создание таблицы на основе введенных значений |
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
02.11.2014, 20:45 | 2 | |||||
Без проблем. Запросом, в котором таблицы создают декартово умножение записей, т.е. между таблицами не установлено никаких связей и будут выводиться все мыслимые сочетания записей всех таблиц.
1
|
9108 / 6037 / 590
Регистрация: 27.03.2013
Сообщений: 19,813
|
|
02.11.2014, 20:46 | 3 |
Скорее всего нужно эти 4 таблички для начала со всяческими звозможными значениями сделать, типа справочников. только уже потом таблицу фактов, а уже по ней создать запрос с вычислениями всяких всячин.
Кстати, по каким формулам всё должно расчитываться?
0
|
2 / 2 / 2
Регистрация: 04.09.2012
Сообщений: 9
|
||||||
02.11.2014, 21:13 [ТС] | 4 | |||||
Рассчитываться ничего не должно. Нужно просто составить бланки задания.
Эти 4 таблички уже готовы: Например таблица напряжений содержит значения: 100, 200 В. Таблица токов: 1, 2, 3, 4, 5 А. Таблица фаз напряжений: -180, -135, - 90 ... +135, +180. Таблица сопротивлений: 50 + j100, 50 - j100 ... Я не знаю как программно реализовать объединение этих таблиц. Выходная таблица должна иметь вид, подобный тому, что представлено во вложении. Обязательно должно присутствовать 3 источника напряжения напряжения, 1 источник тока и 4 сопротивления. Как я представляю, на основе таблиц номиналов и фаз напряжения с помощью
Потом надо выбрать 3 случайные ячейки и в них поместить полные значения напряжений (случайные значения из ранее созданной таблицы). Потом выбрать случайную ячейку из незаполненных и поместить значение тока (случайное значение из таблицы тока). В оставшиеся поместить случайные значения из таблицы сопротивлений. Как раз создать таблицу фактов. И так перебрать все возможные варианты. Но как это сделать, пока что идей нет =(
0
|
ltv_1953
|
02.11.2014, 21:16
#5
|
Не по теме: ТОЭ помню уже смутно (правила Кирхгофа и т.п.), но неужели в такой топологии возможно любое расположение источников тока? (3, 8, 6), например? Не должны ли выполняться некоторые ограничения в "восьмерках"?
0
|
26815 / 14494 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
02.11.2014, 21:31 | 6 | |||||
По остальным условиям перенедопонятость :-)
1
|
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
|
|
03.11.2014, 08:17 | 7 |
Таблицы Токи, Сопротивления в данном случае излишни.
Посмотрим сколько же таких вариантов. Таблица полных значений напряжений (номинал + фаза) содержит n=18 значений, из которых нужно выбрать k=3 значения, что можно сделать u=1140 способами (использовалась формула (n+k-1)!/(k!*(n-1)!) числа сочетаний с повторениями из n по k). Аналогично: для токов: n=5, k=1, количество вариантов i=5; для сопротивлений: n=10 (предположительно), k=4, количество вариантов r=715. Общее количество вариантов, содержащих все 8 элементов, равно произведению u*i*r=4075500, каждый из которых может быть размещен на схеме 8!=40320 способами. Итак, общее количество всех возможных вариантов равно 4075500*40320=164 324 160 000. И что вы будете со всем этим добром делать? Да и Access, быстрее всего, надорвется.
1
|
2 / 2 / 2
Регистрация: 04.09.2012
Сообщений: 9
|
|
13.11.2014, 23:03 [ТС] | 8 |
Я думал access сможет справиться с таким объемом данных. Ну раз надорвется, то решил рандомно генерировать строку с данными, потом сравнивать ее с ранее сгенерированными. если не совпадает, то добавлять в таблицу.
Создал запросы, которые рандомно выбирают ток, полное напряжение (номинал и фаза) и сопротивления. Создал таблицу с номерами 1,2,3...8 из которой запросом тяну 4 случайных неповторяющихся цифры (номера веток для источника тока и трех источников напряжения). К сожалению столкнулся с проблемой с таблицей, которая содержит 4 случайные цифры. Таблица вертикальная (1 столбец), а надо бы превратить ее в горизонтальную. Пробовал много методов, в том числе и pivot, но в итоге элементы строки (рандомные цифры) всегда сортируются по возрастанию (к сожалению код запросов не сохранился). Например таблица после запроса: ID 7 4 3 8 Превращается в I U1 U2 U3 3 4 7 8 Получается, что источник тока никогда не будет располагаться в ветках 6-8. Как вариант думал сохранить запрос с 4-мя случайными цифрами в таблицу, пронумеровать строки и потом элементарными запросами с where вытягивать нужные мне значения в правильном порядке. Есть ли более элегантный способ развернуть один столбец, задать названия столбцов и исключить сортировку?
0
|
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
|
|
14.11.2014, 19:05 | 9 |
To-toshick, решить поставленную задачу, исключая требование о всех возможных вариантах (кстати, так и не дождался пояснения, нафига более 150 миллиардов вариантов), поможет процедура IUR, находящаяся в модуле Module1. Результат в таблице Result.
Не злоупотребляйте количеством вариантов.
1
|
2 / 2 / 2
Регистрация: 04.09.2012
Сообщений: 9
|
|
18.12.2014, 20:17 [ТС] | 10 |
Спасибо большое, помогло.
Так вышло, что преподаватель изменил немного задачу. Стало нужно помещать в ветви с источниками напряжения активные и/или реактивные сопротивления. А сами сопротивления должны быть представлены в виде комбинации RLC, а не одного комплексного числа. minob, спасибо за помощь, но, к сожалению, я не смогла изменить код под свою задачу, поэтому решила писать все без VBA. Получилось кривовато и работает медленно, но работает правильно =) В итоге у меня получились следующие запросы: 8 из них составляют случайные номиналы RLC для каждой ветки. 3 из них составляют случайные параметры источников токов 1 запрос выбирает номинал тока 1 запрос случайно выбирает номера ветвей без повторов для всех источников сразу (чтобы не было повторений). Один макрос удаляет R, L и C из ветви, в которой поселился ток. Другой - сравнивает получившуюся строку с ранее сгенерированными. При чем я могу задавать количество одновременно генерируемых вариантов. От идеи генерировать сразу же все возможные варианты я отказалась. Всем спасибо за подсказки. Они помогли. Теперь нужно загрузить картинку в отчет (по каждому варианту своя, хранятся в определенной папке). В название картинки входит ID (для каждого варианта это поле уникально). Проблема в том что картинок очень много и они будут ответом на задачу по данным этого вариант. Картинку нужно вывести в отчет. Можно ли как-то программно задавать путь до картинки (название= ID.jpg), а потом записывать его в переменную пути элемента Picture на отчет?
0
|
18.12.2014, 20:17 | |
18.12.2014, 20:17 | |
Помогаю со студенческими работами здесь
10
Автоматическое создание запросов на основе значений столбца таблицы Создание таблиц из количества значений другой таблицы Редактирование произвольной таблицы, если ряд полей таблиц содержит коды объектов из других таблиц Создание формы (запроса) с выводом всех значений одной из таблиц, но по условиям полей из другой таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |