Не получается проверить условие перед сохранением

agoti
Дата: 24.11.2009 07:23:37
В приведенном примере нужно перед сохранением проверить есть ли уже в tbl_2
записи на вводимую дату и вводимый борт. Помогите разобраться.
Сильно не пинайте, увы я не программист, а хочется быть хотя бы похожим
mds_world
Дата: 24.11.2009 07:42:05
Создайте в таблице уникальный индекс на эти поля и записи не будут дублироваться.
agoti
Дата: 24.11.2009 10:15:40
Виноват, не полно сформулировал. Записи в таблице могут дублироваться , отличаться должны значением в поле [numer]. Если уже есть запись на вводимую дату и вводимый борт выдаеться сообщение.
mds_world
Дата: 24.11.2009 11:36:02
agoti
Виноват, не полно сформулировал. Записи в таблице могут дублироваться , отличаться должны значением в поле [numer]. Если уже есть запись на вводимую дату и вводимый борт выдаеться сообщение.

Добавить в индекс еще и поле [numer] не вариант?
agoti
Дата: 24.11.2009 17:41:19
mds_world, спасибо, попробовал индексы на эти поля, но мне это не подходит.
Мне необходимо проверить есть ли уже в tbl_2 записи на вводимую дату и вводимый борт или нет. В принципе не обязательно перед сохранением записи.

Пытаюсь таким образом, ошибка. Понимаю что надо азбуку учить. Подскажите как правильно сделать!

Dim rst As Recordset
Dim w As Integer
Set rst = dbs.OpenRecordset("SELECT tbl_2.* from [tbl_2] where dataV=Me![dataV] and bort=Me![bort] ")
If rst.RecordCount > 0 Then
rst.MoveLast
rst.MoveFirst
w = MsgBox(" На эту дату есть " _
& rst.RecordCount & " записей ")
Else
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
End If
отакота
Дата: 24.11.2009 18:00:59
agoti
Set rst = dbs.OpenRecordset("SELECT tbl_2.* from [tbl_2] where dataV=Me![dataV] and bort=Me![bort] ")
Ошибка в том, что вы внутри текста SQL пишете ССЫЛКУ на объект Me, такие ссылки там недопустимы. Вместо этого в строку SQL следует вставить ЗНАЧЕНИЕ контролов. При этом вставляемое значение, в зависимости от его типа, должно иметь соответствующее оформление, что подробно описано в здешнем FAQ'е.
rok
Дата: 24.11.2009 21:05:18
Private Sub Form_BeforeUpdate(Cancel As Integer)
'при повторении паспортных данных выводит сообщение
Dim  c
c = DLookup("[кодП]", "Продавец", _
    "[СерияПаспорта]& [НомерПаспорта]= '" & _
    Me.СерияПаспорта.Value & Me.НомерПаспорта.Value _
    & "'")
 If Not IsNull(c) Then
    b = MsgBox("Уже имеется продавец с такими паспортыми данными " & Chr(10) _
& "Открыть существующую запись? ", vbYesNo + vbCritical)
[инструкции....]
End Sub
agoti
Дата: 25.11.2009 18:49:43
Спасибо за помощь!