Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Простая база данных VB6 DAO+Access / 14 сообщений из 14, страница 1 из 1
30.01.2012, 10:33
    #37637779
alix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
Доброго дня, хочу научиться писать базы данных на VB6. Поэтому поставил себе задачу написать программу хранения данных на складе, с использованием технологии DAO.
Допустим есть список вещей на складе, а также список фамилий владельцев этих вещей. Нужно написать программу в которой будут хранится эти данные. Как я понимаю, в базе данных нужно завести 3 таблицы:

1таблица - список фамилий (ID, ФАМИЛИЯ)
2таблица - список вещей (ID, ВЕЩЬ)
3таблица - список ID фамилий и список ID вещей (ID, ID)

Мне непонятно, как сделать запрос, чтобы выводился отчет: ФАМИЛИЯ - ВЕЩЬ, а не ID - ID, тоесть данные должны браться из таблицы 1 и 2, и показываться в виде таблицы 3.

Второй вопрос, заведение/удаление новых фамилий и вещей. Например человек перестал пользоваться складом, а его вещи остались. Надо удалить его фамилию из таблицы, но в таком случае, кому будет принадлежат вещь в таблице 3 ?
...
Рейтинг: 0 / 0
30.01.2012, 11:00
    #37637823
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
alixс использованием технологии DAO.Лучше использовать ADO. DAO - устаревшая и более глючная технология
alixчтобы выводился отчет: ФАМИЛИЯ - ВЕЩЬДля начала надо прочитать книжку для начинающих по языку SQL и в принципе построению реляционных БД. Я, конечно, могу написать конкретный запрос (потребуется использование JOIN), но лучше ОСНОВЫ все-таки изучить
alixНадо удалить его фамилию из таблицыЛибо использовать каскадное удаление (встроенное в БД или вручную), то есть удалять сначала вещь, потом фамилию. Но правилом хорошего тона будет не удаление записи из таблицы, а присвоение ей признака "удалено"
...
Рейтинг: 0 / 0
30.01.2012, 11:13
    #37637844
alix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
авторЛучше использовать ADO. DAO - устаревшая и более глючная технология

Думаю до ADO дойду в последствии, но пока хочу понять как работает DAO

авторДля начала надо прочитать книжку для начинающих по языку SQL и в принципе построению реляционных БД. Я, конечно, могу написать конкретный запрос (потребуется использование JOIN), но лучше ОСНОВЫ все-таки изучить

да основы изучаю, но запрос лучше все таки написать )
...
Рейтинг: 0 / 0
30.01.2012, 11:48
    #37637892
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
Таблицы:
Код: sql
1.
2.
3.
Users (ID int, Name nvarchar(50))
Things (ID int, Name nvarchar(50))
ThingsMM (User int, Thing int)


Запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT   Users.Name AS Фамилия,
         Things.Name AS Вещь
FROM     ThingsMM
         INNER JOIN Users ON ThingsMM.User=Users.ID
         INNER JOIN Things ON ThingsMM.Thing=Things.ID
ORDER BY Users.Name,
         Things.Name
...
Рейтинг: 0 / 0
30.01.2012, 11:50
    #37637896
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
Вариант с признаком удаления


Таблицы:
Код: sql
1.
2.
3.
Users (ID int, Name nvarchar(50), IsDeleted bit)
Things (ID int, Name nvarchar(50))
ThingsMM (User int, Thing int)


Запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT   Users.Name AS Фамилия,
         Things.Name AS Вещь
FROM     ThingsMM
         INNER JOIN Users ON ThingsMM.User=Users.ID
         INNER JOIN Things ON ThingsMM.Thing=Things.ID
WHERE    Users.IsDeleted=0
ORDER BY Users.Name,
         Things.Name
...
Рейтинг: 0 / 0
30.01.2012, 12:18
    #37637948
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
Shocker.ProТаблицы:не заметил, что в заголовке топика указано, что СУБД Аксесс, типы данных написал как для MSSQL.
...
Рейтинг: 0 / 0
30.01.2012, 13:03
    #37638062
alix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
авторе заметил, что в заголовке топика указано, что СУБД Аксесс, типы данных написал как для MSSQL.

Благодарю. Сделал базу по примеру вашего кода. Не посмотрите правильно или нет?
...
Рейтинг: 0 / 0
30.01.2012, 13:14
    #37638087
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
alixНе посмотрите правильно или нет?неправильно

alix3таблица - список ID фамилий и список ID вещей (ID, ID)вот же правильный подход был
...
Рейтинг: 0 / 0
30.01.2012, 13:18
    #37638095
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
Shocker.Proнеправильновиноват

слишком умный аксесс мне отобразил таблицу не в том виде, в котором я ожидал увидеть
посмотрел в конструктор - все правильно

И то, что счетчик добавлен к третьей таблице - правильно, хоть я его и не упоминал
...
Рейтинг: 0 / 0
30.01.2012, 14:11
    #37638202
alix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
Теперь вопрос как добавлять/редактировать данные.
1 вариант - фамилия есть в таблице Users
2 вариант - фамилии нет
...
Рейтинг: 0 / 0
30.01.2012, 14:39
    #37638254
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
1) Средствами DAO по добавлению данных.
2) Выполнением запроса "INSERT.... "
...
Рейтинг: 0 / 0
31.01.2012, 14:36
    #37640059
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
...
Рейтинг: 0 / 0
01.02.2012, 10:46
    #37641334
alix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
aduka05adm,

Лекция не показывается: 404 Not Found
...
Рейтинг: 0 / 0
01.02.2012, 14:23
    #37641922
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простая база данных VB6 DAO+Access
alix,
должно показывать просто зарегистрируйся там
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Простая база данных VB6 DAO+Access / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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