как заставить Access информировать, что данные пропадут.

Программирование на Visual Basic for Applications
Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

как заставить Access информировать, что данные пропадут.

Сообщение Avtopic » 11.01.2006 (Ср) 20:57

Застрял. Работаю в Excel-е и от туда ковыряюсь в mdb:
Cоздаю таблицу
db.Execute ("CREATE TABLE cont1 (f1 char (21) ,f2 char (21),f3 char(21),f4 char(21),f5 char(21),f6 SHORT ,f7 char(21),f8 char(21) NOT NULL UNIQUE);")
стараюсь впихнуть в cont1.f8 одинаковые и пустые значения. В cont2.f8 значении 300, из них 111 удовлетворяет NOT NULL и UNIQUE
db.Execute ("INSERT INTO cont1 SELECT * from cont2;")
и результат соответствующий, cont1 содержит 111 записей.
Никто не ругается и нет error-а. Как можно обойти случайное пропадание данных (в других полях), не перебирая в цикле заранее cont1.f8. То ест, нужен error, чтобы, потом его обработать.
Нужен именно error, или сообщение. А то что, избежать, пропадание данных можно изменив второй запрос, я знаю.
Заранее благодарю.

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

Сообщение alibek » 11.01.2006 (Ср) 21:07

Куда данные пропадают и откуда?
Lasciate ogni speranza, voi ch'entrate.

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 11.01.2006 (Ср) 22:04

field f8 в таблице cont1 допускает только NOT NULL и UNIQUE
Во всех полях в таблице cont2 находятся данные. Записи в field f8 в таблице cont2 неуникальные.
при выполнении второго запроса с cont2 отбрасываются неуникальные (в f8 ) записи и остаются
только те, которые допустимы для field f8 в таблице cont1.
Если постараться ввести недозволенные записи в таблицу cont1 в ручную в Access-e, выскочит сообщение что поле f8 не должен содержать NULL и т.д., а здесь все идет без предупреждении или сообщении об ошибке.
Вед нет же запроса db.Execute ("INSERT INTO cont1 SELECT * from cont2 WHERE .... ;"), a ест запрос полностью перенести все что в таблице cont2, а сообщении об ошибке нет.

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

Сообщение alibek » 11.01.2006 (Ср) 22:14

Тогда сделай выборку SELECT f8 FROM cont2 WHERE f8 IS NULL UNION SELECT f8 FROM cont2 GROUP BY f8 HAVING COUNT(f8) > 1 и если там что-то будет, выдавай предупреждение.
Lasciate ogni speranza, voi ch'entrate.

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 11.01.2006 (Ср) 23:14

Не
мо-гу
вы-ра-зи-ть
св-ою
бла-го-дар-но-сть!!!!


Вернуться в VBA

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

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

    TopList