powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / разрезание таблицы
9 сообщений из 9, страница 1 из 1
разрезание таблицы
    #32808476
Фотография andrey137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Вот вопрос:

Есть таблица описывающая товары, в помимо прочих имеются столбцы ТИП и ЕДИНИЦА ИЗМЕРЕНИЯ, нужно автоматом перегонять данные из этой таблицы в базу данных. В базе данных хотелось бы сделать 3 таблицы (что бы по науке все было ;-) ) ТОВАР, ТИП, ЕДИНИЦА ИЗМЕРЕНИЯ и связать их ключами.

Вопрос как можно автоматизировать этот перегон скажем с помощью запроса или (в самом тяжелом случае, ибо очень не хочется) VBA.

Т.е. как из простой таблицы сделать три связанные ключами автоматически т.е. не прибегая, скажем, к служебной программе "разделение баз данных".
...
Рейтинг: 0 / 0
разрезание таблицы
    #32808494
SinnerXP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучше этот процесс контролировать самому,
сначала дестинктом выбираются значения справочников из указанных полей и формируются таблицы,
далее перегоняется исходная таблица полностью + добавляються поля длЯ заполнения кодов справочников.
Потом апдейтами заполняются из таблиц-справочников.

Исх. - A

insert into B1
select distinct ТИП
from A

insert into C1
select distinct ЕДИНИЦА ИЗМЕРЕНИЯ
from A

insert into A1
select * ТИП
from A

добавить КОДТИПА и КОДЕДИНИЦЫ в A1

update A1
set A1.КОДТИПА = B1.КОД
from B1
where B1.=НАЗВ = A1.ТИП

типа того...
...
Рейтинг: 0 / 0
разрезание таблицы
    #32808504
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В аксессе есть на это специальный визард. Нажал пару кнопок и плюй себе в потолок.
...
Рейтинг: 0 / 0
разрезание таблицы
    #32808609
Фотография andrey137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У-У-У-У-Р-Р-Р-А-А-А-А-А-А!!!!!!!!

Спасибище большое, SinnerXP!
Все заработало, я правда несовсем понял что ты в конце имел ввиду и сделал так:

INSERT INTO prices ( articul, name, unit_id, C1, C2, section_id )
SELECT [data].[articul], [data].[name], [units].[unit], [data].[C1], [data].[C2], [sections].[section]
FROM (data INNER JOIN units ON [data].[unit]=[units].[description]) INNER JOIN sections ON [data].[section]=[sections].[description];

где prices-конечная таблица, data-исходная, а units и sections это те самые справочники с единицами измерения и типами соответственно.


ОДНАКО, если вдаваться в подробности стоящая задача в следующем заключается:
Есть большущий прайс в Excel, его надо перегнать в MySQL, но поскольку более-менее я только Access знаю, саму прогу по перегону в реляционный вид решил делать в нем.

Для начального этапа (непосредственно перегон) твой метод идеально подходит. Но если в последствии захочется делать добавления - перегнать в ту же базу еще ма-а-аленький прайсик. Капутт... НЕработает, т.к. в таблицы ТИП и ЕДИНИЦА ИЗМЕРЕНИЯ добавятся повторные данные.

Может есть что-либо навроде INSERT DISTINCT... ;-)
НУ, в самом деле, разве нет в такой мощной штуке как SQL средств для проверки существовуют ли уже вводимые данные?
...
Рейтинг: 0 / 0
разрезание таблицы
    #32808610
Фотография andrey137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-Любитель, визард не годится ибо нужен автоматизьм ;-) Вот если б этот визард автоматом запускать и необходимые параметры ему передавать...
...
Рейтинг: 0 / 0
разрезание таблицы
    #32808612
Фотография andrey137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, кстати, SinnerXP не просветишь?

Не первый раз уже натыкаюсь на термин "справочники" - так, видимо, таблицы состоящие только из ключа и описания называют?

Это общепринятое название или так только на этом форуме выражовываются? ;-)
...
Рейтинг: 0 / 0
разрезание таблицы
    #32808739
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно под справочниками понимают таблицы на стороне 1 в отношении 1 ко многим. Как правило это код (ключ, удобно делать автоинкрементом) + значение (чаще всего строка) + возможный комментарий, флажок какой-нибудь, еще что-нибудь по вкусу.

Типичное применение - типы, категории, классификация основных данных.

Часто бывает, что справочник может быть фиксированным или значения в нем редко модифицируются.

Значения справочников логично использовать в качестве заголовков столбцов перекркстных запросов.
...
Рейтинг: 0 / 0
разрезание таблицы
    #32809354
Фотография andrey137
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибище всем большое за прояснения....
и все-же, дико извиняясь за наглость, спрошу...

ЧТО ПОДСКАЖЕТЕ ПО ПОВОДУ РЕШЕНИЯ ВЫШЕОПИСАННОЙ ЗАДАЧИ ПОЗВОЛЯЮЩЕГО В ПОСЛЕДСТВИИ ПРОИЗВОДИТЬ ДОБАВЛЕНИЕ ИНФРОМАЦИИ?
...
Рейтинг: 0 / 0
разрезание таблицы
    #32809408
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем проблема добавлять и редактировать записи (строки) в самой таблице-справочнике ? Ненаказуемо.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / разрезание таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]