Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
Таблица "Документы". Упрощенно: IdДокумент, Документ.
Нужно как-то обозначить "связанные" документы. Связь может быть как "Док1 связан с Док2", так и "Док1 связан с Док2, Док3 и т.д.".

Под "связью" имею ввиду что-то вроде "ссылки на...".
14 мар 06, 18:05    [2447723]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
Polev
Member

Откуда:
Сообщений: 1359
Создать таблицу СвязанныеДокументы
ID, Doc1_ID, Doc2_ID
14 мар 06, 18:07    [2447734]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
Создать таблицу СвязанныеДокументы
Не въезжаю: если для Док1 ввести записи
1 IdДок1 IdДок2
2 IdДок1 IdДок3
3 IdДок1 IdДок4
то, открыв форму с данными Док2, можно будет увидеть, что он уже связан с Док1 или придется вводить
4 IdДок2 IdДок1?
14 мар 06, 18:43    [2447927]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
Polev
Member

Откуда:
Сообщений: 1359
tim2
Создать таблицу СвязанныеДокументы
Не въезжаю: если для Док1 ввести записи
1 IdДок1 IdДок2
2 IdДок1 IdДок3
3 IdДок1 IdДок4
то, открыв форму с данными Док2, можно будет увидеть, что он уже связан с Док1 или придется вводить
4 IdДок2 IdДок1?

А это уже как организуешь форму :)
14 мар 06, 18:57    [2447990]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
А это уже как организуешь форму :)
Форму или таблицу? Если таблица содержит:
ID Doc1_ID Doc2_ID
1 IdДок1 IdДок2
2 IdДок1 IdДок3
3 IdДок1 IdДок4
то, открывая форму "Связанные документы" из формы "MyForm" с данными Док1, можно получить данные столбца Doc2_ID, если задать условие
 ..."[Doc1_ID=]" & Forms!MyForm!Doc1_ID
ну а если "MyForm" содержит данные по Док2, то такое условие ни к чему не приведет: надо отбирать по столбцу Doc2_ID, а выводить в форму "Связанные документы" данные столбца Doc1_ID.

Что-то хрень какая-то выходит!
15 мар 06, 15:18    [2451476]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
Polev
Member

Откуда:
Сообщений: 1359
..."[Doc1_ID=]" & Forms!MyForm!Doc1_ID & " OR [Doc2_ID=]" & Forms!MyForm!Doc1_ID
15 мар 06, 15:50    [2451704]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
И еще условие "не показывать самого себя"?
А чтоб "связанные" документы выводились в одном поле(столбце) чего делать?
15 мар 06, 16:06    [2451873]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
Polev
Member

Откуда:
Сообщений: 1359
tim2
И еще условие "не показывать самого себя"?
А чтоб "связанные" документы выводились в одном поле(столбце) чего делать?

Источником записей формы связанныеДокументы поставить нечто вроде:

SELECT doc.*
FROM Документы AS doc INNER JOIN (SELECT d.Doc1_ID AS ID
FROM СвязанныеДокументы AS d
UNION SELECT d.Doc2_ID AS ID
FROM СвязанныеДокументы AS d) AS un ON doc.ID = un.ID;
15 мар 06, 16:18    [2451974]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
Polev
Member

Откуда:
Сообщений: 1359
И условие открытия

..."d.ID =" & Forms!MyForm!Doc1_ID
15 мар 06, 16:20    [2451985]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
Polev
Member

Откуда:
Сообщений: 1359
Polev
И условие открытия

..."d.ID =" & Forms!MyForm!Doc1_ID

Ну то есть un.ID - точнее сам разберешься
15 мар 06, 16:29    [2452054]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
Чтой-то не выходит каменный цветок: при условии отбора
...=...Doc1_ID
возвращаются данные по записи .... Doc1_ID.
Связанные документы - не выводятся.
15 мар 06, 17:34    [2452374]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
15 мар 06, 19:07    [2452866]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
У меня монстр какой-то выходит. Источником формы "Связанные док-ты" должен быть запрос:
SELECT СвязанныеДокументы.Doc1_ID as Код, СвязанныеДокументы.Doc2_ID
FROM СвязанныеДокументы;
UNION SELECT СвязанныеДокументы.Doc2_ID as Код, СвязанныеДокументы.Doc1_ID
FROM СвязанныеДокументы ;
а условие открытия:
"..."[Код]=" & Forms!MyForm!IdДокумент
А вот как добавлять новый связанный документ?
Во геморрой!
16 мар 06, 12:47    [2455322]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
Все еще актуально....
16 мар 06, 18:57    [2457464]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
А почему так сделал?
SELECT СвязанныеДокументы.Doc1_ID as Код, СвязанныеДокументы.Doc2_ID
  FROM СвязанныеДокументы;
 UNION 
SELECT СвязанныеДокументы.Doc2_ID as Код, СвязанныеДокументы.Doc1_ID
  FROM СвязанныеДокументы ;
Почему "должен быть"?
Тебе же написали как организовать.
Создать таблицу Связныедокументы с полями IDLinkDoc, DocMASTERID, DocSLAVEID
и работать с ней, а заполнять таким образом (например документ 1 связан с 2 и 3, документ 2 связан с 4 и 5)
IDLinkDoc DocMASTERID DocSLAVEID
112
213
324
425

Зачем ты чтото объединяешь что добиться хочешь не понятно?
16 мар 06, 19:07    [2457483]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
Polev
Member

Откуда:
Сообщений: 1359
barrabas
Зачем ты чтото объединяешь что добиться хочешь не понятно?

Что он хочет добиться как раз понятно.
автор
(например документ 1 связан с 2 и 3, документ 2 связан с 4 и 5)

Документ 2 связан не только с 4 и 5, но и с 1-м.
А я там полный бред по запросу кстати написал. Перечитал сегодня - сам офигел насколько бред. Сорри.
17 мар 06, 12:26    [2459491]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
Ну если обратная взязь всегда существует то можно или дублировать записи
1->2 и 2->1 или получать запросом (На А97 не работает)
SELECT A.DocMASTERID, A.DocSLAVEID,A.IDLinkDoc
FROM (SELECT T.DocMASTERID, T.P2,T.IDLinkDoc
               FROM DocumetsLinkTB as T
              UNION ALL
            SELECT T.DocSLAVEID, T.DocMASTERID,T.IDLinkDoc
               FROM DocumetsLinkTB as T) as A
WHERE A.DocMASTERID=IDНужногоДокумента
17 мар 06, 15:35    [2460849]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
2 barrabas
1. Нет там документов "Master" и "Slave". Если есть путаница с терминологией, можно перейти на другой пример: Вася дружит с Петей, Колей и Мишей. Нет тут отношений типа "Master - Slave".
2. К сожалению, Акс97
2 Povel
сам офигел насколько бред
ну не надо уж так себя казнить - запрос ведь что-то возвращает
17 мар 06, 17:33    [2461648]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
tim2
2 barrabas
1. Нет там документов "Master" и "Slave". Если есть путаница с терминологией, можно перейти на другой пример: Вася дружит с Петей, Колей и Мишей. Нет тут отношений типа "Master - Slave".

Ну назови Doc1 и Doc2 если не нравится название, я понял что связи двусторонние и этот пример как раз для этого.
17 мар 06, 17:43    [2461698]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
А чем мой "монстр" не хорош? Может и "не правильный" он, но ведь данные возращает верные.
17 мар 06, 18:21    [2461898]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
Вот что-то получается...
В приложенном файле, из формы "Документы", для каждой записи, открывается форма "Смежные", о ней и шла речь.
Может кто-чего поправит/посоветует?

К сообщению приложен файл (db100.rar - 20Kb) cкачать
18 мар 06, 18:23    [2463439]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
А зачем условие отбора по полю сделал? Теперь как форму открываешь вопросы задает (2 вопроса а надпись одна и разберись что он хочет это как я понял для списка свободных и списка смежных), лучше сделать на форме еще список всех документов чтоб можно было выбрать а не входить каждый раз заново вводя ID нужного документа, или если форма будет открываться по нажатию на документ из другой формы (тогда ID лучше передавать через property let)
19 мар 06, 09:23    [2464059]     Ответить | Цитировать Сообщить модератору
 Re: Связанные документы  [new]
tim2
Member

Откуда:
Сообщений: 430
Дык...!!!
Форма "Смежные" открывается только из других форм. В данном случае - из "Документы". Id в форму передается в список "Свободные" - чтоб не отображать "саму себя", а в список "Смежные" - чтоб отобрать связанные с записью документы.
ID лучше передавать через property let
А чем плох способ передачи через OpenArgs? Сколь угодное число параметров, через разделитель, пихаешь в OpenArgs, а на стороне "получателя" разбираешь эту строку "по полочкам".
20 мар 06, 10:42    [2466006]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить