Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Где грабли? Добавлено: 20.12.02 18:52  

Автор вопроса:  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". Т.е. если я правильно понимаю, то ему что то ненравиться с типами данных.
Как обойти сею фичу? Наверняка кто-то уже наступал на эти грабли. Спасибо.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Jusangel



Вопросов: 0
Ответов: 5
 Профиль | | #1 Добавлено: 23.12.02 01:39

Не уверен, но не пробовал ли ты не переводить в денежный тип, или использовть CDbl() вместо CCur() Здесь подводным камнем может оказаться что угодно: от неверно представленного типа до ошибок типа запятая/точка

Ответить

Номер ответа: 2
Автор ответа:
 vig11



ICQ: 213777061 

Вопросов: 21
Ответов: 159
 Профиль | | #2 Добавлено: 25.12.02 16:51
По-моему тоже проблема в переводе типов данных. Разве в Acces-е используется тип данных Currenc. Посмотри какой тип данных в этом поле в таблице в новой базе данных.

Ответить

Номер ответа: 3
Автор ответа:
 Millenium



ICQ: 629966 

Вопросов: 118
Ответов: 903
 Web-сайт: www.aliyev.us
 Профиль | | #3
Добавлено: 25.12.02 17:54

ACESS 2002 sama eto delayet!!!

 

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase=http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,
0 ID=http://us.greet1.yimg.com/img.greetings.yahoo.com/g/img/sanrio/xmaswish.swf WIDTH="400" HEIGHT="320">
<PARAM NAME=movie VALUE="http://us.greet1.yimg.com/img.greetings.yahoo.com/g/img/sanrio/xmaswish.swf">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src="http://us.greet1.yimg.com/img.greetings.yahoo.com/g/img/sanrio/xmaswish.swf" quality=high bgcolor=#FFFFFF WIDTH="400"
HEIGHT="320" TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_
Version=ShockwaveFlash"></EMBED>
</OBJECT>

Ответить

Номер ответа: 4
Автор ответа:
 ГАТ



Вопросов: 2
Ответов: 117
 Web-сайт: www.mail.ru
 Профиль | | #4
Добавлено: 26.12.02 13:27

На сколько я понял, у тебя поле имеет тип Currency. А строку поиска ты строшь так:

rstNew.FindFirst D_summa = '123.00', а на самом деле должно быть так

rstNew.FindFirst D_summa = 123.00

Попробуй конструкцию:

rstNew.FindFirst "D_summa=" & CCur(rstOld![D_summa])

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам