Где грабли?
Нужна помощь в решении (помоему) элементарной задачи. Вообщем есть две БД на Access - старая и новая, в них есть одинаковые таблицы, пишется прога на VB которая перекинет данныеиз старой БД в новую. Вся фича заключается в том, что в результате простого копирования могут появиться повторные записи, а по сему прежде чем занести запись в новую БД я сравниваю переносимые данные из старой БД с данными из новой БД. Т.е. берется recordsetOld и прогоняется по новой БД методом FindFirst. Проверяется это все по трем полям: № документа - числовой тип, Дате создания записи - тип данных: Дата; и Сумма заказа - тип данных: Денежный, фиксированный. Глюка в том, что
rstNew.FindFirst "D_nomer = '" & rstOld![D_nomer] & "'" & " AND Date = #" & Format(rstOld![Date], "mm-dd-yy") & "#"
работает без проблем, а вот если искать по полю Сумма (D_summa)
rstNew.FindFirst "D_summa= '" & CCur(rstOld![D_summa]) & "'"
то появляеться ошибка Run-time error 3464 "Data type mysmatch in criteria expression". Т.е. если я правильно понимаю, то ему что то ненравиться с типами данных.
Как обойти сею фичу? Наверняка кто-то уже наступал на эти грабли. Спасибо.
Цитата:
Originally posted by MNikolay
Привет всем.
Нужна помощь в решении (помоему) элементарной задачи. Вообщем есть две БД на Access - старая и новая, в них есть одинаковые таблицы, пишется прога на VB которая перекинет данныеиз старой БД в новую. Вся фича заключается в том, что в результате простого копирования могут появиться повторные записи, а по сему прежде чем занести запись в новую БД я сравниваю переносимые данные из старой БД с данными из новой БД. Т.е. берется recordsetOld и прогоняется по новой БД методом FindFirst. Проверяется это все по трем полям: № документа - числовой тип, Дате создания записи - тип данных: Дата; и Сумма заказа - тип данных: Денежный, фиксированный. Глюка в том, что
rstNew.FindFirst "D_nomer = '" & rstOld![D_nomer] & "'" & " AND Date = #" & Format(rstOld![Date], "mm-dd-yy") & "#"
работает без проблем, а вот если искать по полю Сумма (D_summa)
rstNew.FindFirst "D_summa= '" & CCur(rstOld![D_summa]) & "'"
то появляеться ошибка Run-time error 3464 "Data type mysmatch in criteria expression". Т.е. если я правильно понимаю, то ему что то ненравиться с типами данных.
Как обойти сею фичу? Наверняка кто-то уже наступал на эти грабли. Спасибо.
Привет всем.
Нужна помощь в решении (помоему) элементарной задачи. Вообщем есть две БД на Access - старая и новая, в них есть одинаковые таблицы, пишется прога на VB которая перекинет данныеиз старой БД в новую. Вся фича заключается в том, что в результате простого копирования могут появиться повторные записи, а по сему прежде чем занести запись в новую БД я сравниваю переносимые данные из старой БД с данными из новой БД. Т.е. берется recordsetOld и прогоняется по новой БД методом FindFirst. Проверяется это все по трем полям: № документа - числовой тип, Дате создания записи - тип данных: Дата; и Сумма заказа - тип данных: Денежный, фиксированный. Глюка в том, что
rstNew.FindFirst "D_nomer = '" & rstOld![D_nomer] & "'" & " AND Date = #" & Format(rstOld![Date], "mm-dd-yy") & "#"
работает без проблем, а вот если искать по полю Сумма (D_summa)
rstNew.FindFirst "D_summa= '" & CCur(rstOld![D_summa]) & "'"
то появляеться ошибка Run-time error 3464 "Data type mysmatch in criteria expression". Т.е. если я правильно понимаю, то ему что то ненравиться с типами данных.
Как обойти сею фичу? Наверняка кто-то уже наступал на эти грабли. Спасибо.
Само собой....
В апострофы заключают только текстовые переменные...
rstNew.FindFirst "[D_summa]= " & CCur(rstOld![D_summa])