Переход от Акса 2003 на 2007

Anapurna
Дата: 03.12.2009 12:45:15
В форме есть комбо бокс которий филтрует данные

Private Sub PositionID_filter_AfterUpdate()
    DoCmd.ApplyFilter "", "[PositionID]=[forms]![User]![PositionID_filter]"
    DoCmd.SetWarnings False
    DoCmd.RunSQL "INSERT INTO Spbg ( Code, PositionID ) SELECT Entry.code, [forms]![User]![PositionID_filter] AS F1 FROM Entry WHERE (((Entry.vr_vih) Is Null) AND ((Entry.User)=UserNameShort()));"
    DoCmd.SetWarnings True
End Sub

в 2003 всё норально но а когда БД откриваю в аксе 2007 то филтр перестаёт работать
может кто то сталкивалься уже с такой проблемой ?
CoolMind
Дата: 07.12.2009 17:32:39
Anapurna, а если после выполнения запроса вновь выполнить фильтрацию, ошибки не будет?
Владимир Саныч
Дата: 07.12.2009 20:28:22
Anapurna
DoCmd.SetWarnings False
DoCmd.RunSQL ...
DoCmd.SetWarnings True

Вот это очень плохо. Если при исполнении RunSQL будет ошибка, то до SetWarnings True программа не дойдет и Аксесс останется с выключенными сообщениями об ошибках. То есть при следующей ошибке Вы о ней уже не узнаете. Поэтому вместо этих трех строчек лучше пользоваться CurrentDb.Execute
Anapurna
Дата: 08.12.2009 10:28:29
Владимир Саныч
Вы прави я снял
DoCmd.SetWarnings False
DoCmd.SetWarnings True

и оказалось что 2007 не понимает параметры для филтрации
думаю что проблема синтакса DoCmd.RunSQL . . .

DoCmd.RunSQL "INSERT INTO Spbg ( Code, PositionID ) SELECT Entry.code, [forms]![User]![PositionID_filter] AS F1 FROM Entry WHERE (((Entry.vr_vih) Is Null) AND ((Entry.User)=UserNameShort()));"

что можеть здес неприемлим для акса 2007 ?
Владимир Саныч
Дата: 08.12.2009 12:23:48
DoCmd.RunSQL "INSERT INTO Spbg ( Code, PositionID ) SELECT Entry.code, " & [forms]![User]![PositionID_filter] & " AS F1 FROM Entry WHERE (((Entry.vr_vih) Is Null) AND ((Entry.User)=UserNameShort()));"
Anapurna
Дата: 16.12.2009 12:47:55
Владимир Саныч
если можно я перешлю на мейл а то ничего не получаеться