Консультация № 44177
25.05.2006, 08:57
0.00 руб.
0 2 1
Добрый день всем!
Подскажите реализацию вопроса:
VB6, БД на Access98. имеются две таблицы Tabl1 и Tabl2 с одинаковой структурой (индентичны). В таблицах есть поле "InvNumber", где обьявлено в конструкторе:"Совпадение не допускается". Как при занесении данных в Tabl1 проконтролировать в Tabl2, чтобы не было индентичной записи по данному полю, что-2:
то наподобие:

код Visual Basic

Private Sub Data1_Validate(Action As Integer, Save As Integer)
Set dbBibliot = OpenDatabase(gDataBaseName) ‘здесь хранится путь к БД
Data2.RecordSource = "SELECT InvNumber FROM StudTitDolg=" & DBGrid1.Columns("InvNumber").Text ‘Поиск в Tabl2 такой же записи
If Tabl2.InvNumber=Tabl1.InvNumber THEN
Action = 0
Save = False
MsgBox ("Повторяющийся Инв.Номер.")
Exit Sub
dbBibliot.Close
End If
End Sub

Если не понятно, объясню.
С уважением

Обсуждение

Неизвестный
25.05.2006, 18:29
общий
это ответ
Здравствуйте, Робатько Анатолий Васильевич!
А кто занимается занесением данных в эти таблицы ?
Может разграничить индексы в момент занесения ?
вариант - в таблицу 1 заносим четные индексы с шагом 2
а в таблицу 2 - нечетные, тоже с шагом 2
тогда индексы будут уникальны сразу в момент создания
но для учета и инвентаризаций этот вариант может не подойти, там номера должны быть сквозными

Другой вариант, если индексное поле не числовое, то к обычному индексу добавляем префикс в зависимости от таблицы, например _tab1 _tab2
(или номер отдела или еще что..)
таким образом мы получим уникальный индекс в пределах нескольких таблиц

ну и третий путь, может быть самый интересный.
если две таблицы одинаковы, зачем их две ?
сделай одну общую и дополнительное поле, указывающее тип таблицы
по этому полю ты всегда сможешь сформировать как первую так и вторую табличку обычным запросом, а уникальность индекса будет обеспечена тем, что данные лежат не в двух таблицах, а в одной, и это поле общее..
Неизвестный
26.05.2006, 08:57
общий
Игорь Елизаров! небольшое уточнение по данному вопросу: Каждая книга имеет свой инвентарный номер (текстовый). При выдаче книги студенту с Инв №0000( примерно), в Tabl1 вводится вся инфа и в обязанельно 0000.Если по каким-то причинам студент ушел с академии и не сдал литературу, то все записи удаляются в Zip- таблицы.Такой ньюанс есть, при выдаче книги, надо проверить вводимый Инв№ и в Tabl1(основные записи) и Tabl2(Zip) и только при отсутствии данного № возможно сохранение данной записи.
Форма ответа