База данных в Excel

Программирование на Visual Basic for Applications
dimasss
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.08.2005 (Пн) 14:51

База данных в Excel

Сообщение dimasss » 15.08.2005 (Пн) 15:30

Как сделать в Excel базу данных следущего типа:
справочник Свойств (поля: Код, Наименование)
таблица Товаров (поля: Код, Наименование, Свойство - берется из справочника Свойств)
Интересует именно технология создания ссылки поля Свойство таблицы товаров на справочник свойств.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.08.2005 (Пн) 15:49

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

dimasss
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.08.2005 (Пн) 14:51

Сообщение dimasss » 15.08.2005 (Пн) 15:59

GSerg

это я уже видел (даже сам там писал)
НО если в списке (в нашем случае в справочнике Свойств) изменить что-либо, то это изменение не будет видно в основной таблице (таблица Товаров), т.е. основная идея базы данных не реализуется этим методом, может есть какие-то другие механизмы?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 15.08.2005 (Пн) 16:06

сделать это в Акцессе :)

dimasss
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.08.2005 (Пн) 14:51

Сообщение dimasss » 15.08.2005 (Пн) 16:33

Konst_One

надо именно в Экселе
неужели нет никаких вариантов?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.08.2005 (Пн) 16:35

Нормальных -- нет.
Lasciate ogni speranza, voi ch'entrate.

dimasss
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.08.2005 (Пн) 14:51

Сообщение dimasss » 15.08.2005 (Пн) 16:46

alibek
жалллллььььь :(

Терминатор
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 164
Зарегистрирован: 06.01.2005 (Чт) 12:57
Откуда: Москва

Сообщение Терминатор » 15.08.2005 (Пн) 20:23

У меня есть вариант.
Делал для себя, поэтому непосредственный перенос не сработает.
Я постарался всё что есть важного в Access, создать где ручками а где кодом, те же функции. А именно - самое главное это из "плоской БД", или как ещё говорят "сплошной" создать реалиционную БД.

1 ) разбиение на классы, затем на объекты ( кто? что? где? )
2 ). Выделение свойства объекта.
3 ). Определение связей между объектами.
Связи:
1 к 1 ( реализована )
1 к многим ( реализована )
многие к 1 ( реализована )

Ликбез - http://bikmeyev.narod.ru/Access/lesson1.html

Но справедливости ради, надо сознаться, что всё повторить, или даже повторить в полной мере не удалось. Access мощнее, даже эту тему можно не обсуждать.
Но такие мастера кода как GSerg или Alibek могли бы не скромничать, им то под силу создать БД и в Excel, и наверное даже в Блокноте. Но, резона нет.
Чтоб сильно мне не позориться своим корявым кодом, dimasss напиши мне или вышли образец, под него я вышлю тебе свои готовые варианты. - terminator@ok.ru
Мой вариант работает в реальном режиме у меня на работе второй год. Лично мне и ещё нескольким сотрудникам 65 000 записей на год хватает. Естественно, всё это по моей личной инициативе, под мою ответственность, и только в моём маленьком отделе, ибо всё предприятие сидит на сложной, индивидуально написанной проге под заказ.(Delphi+SQL).
Но центральный офис с Сентября пересядит на "Максиму". Если кто знает что это за зверь, поймут.
БД в Excel, это так сказать не традиционная вещь, больше подходящяя ЧП или МП, или ООО с упращёнкой. Ну конечно, можно и завод подсадать на Excel, но тогда наверное понадобиться целая команда "виртуозов резьбы по дереву".
Hasta la vista, baby!

sergeyvg
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 16.08.2005 (Вт) 9:27

Сообщение sergeyvg » 16.08.2005 (Вт) 9:39

Возможен несколько извращенный алгоритм поддержки изменений Свойств и Товаров с использованием Application.Undo:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'запомнить, опираясь на Target, Адреса и Новые значения Свойств
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
'запомнить по Адресам Старые значения
'заменить в Товарах Старые значения на Новые
'заменить в Свойствах Старые значения на Новые
End Sub


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 60

    TopList