ник: Гоблин
Вот почему дату не вводил. И за это спасибо. Только теперь новый спотык.
Раньше новая другая форма открывалась в режиме добавления. В нее вносились данные из переменных. Все пахало. Теперь данные вносятся перед открытием. Открываю форму с фильтром по последнему. Даю весь код на открытие формы:
Private Sub Form_Open(Cancel As Integer)
With Me.Form 'Открываем последнюю запись. Ту что добавлена только что.
.Filter = "КодПациента=" & Nz(DMax("КодПациента", "Пациенты"), 0)
.FilterOn = True
End With
If Me!СоцПоложение = "В/служащий МО" Or Me!СоцПоложение = "В/служащий МВД,ФСК,ПВ,ФСБ" Then 'избегаем лишнего
Me!Звание.Visible = True
Else
Me!Звание.Visible = False
End If
With Me.[подчиненная форма № истории].Form 'в подчиненной показываем последнюю запись и даем возможность добавить
.AllowEdits = False
.AllowAdditions = True
.Filter = "КодИсследования=" & Nz(DMax("КодИсследования", "№ истории", Me.Filter), 0)
.FilterOn = True
End With
Me.СоцПоложение.SetFocus
End Sub
Все пахает как надо. Но! Это если клиент не был внесен ранее и его только что внесли. А если он уже был, то найдя его в первой форме 2 щелбана в списке и ... в данном случае открывается последний как фильтр велит. Пробовал отключать фильтр из первой формы. Не получается.
Возможно ли в ПолеСоСписком13 - чем заканчивается ввод нового, вклинить фильтр по последнему, что бы не ставить его на открытие формы.
Private Sub ПолеСоСписком13_AfterUpdate()
Me![Список10].Requery
Me.Requery
If Me.Список10.ListCount = 0 Then
If MsgBox("Данный пациент отсутствует в базе. Добавить?", vbOKCancel) = vbOK Then
Const SQLDATE As String = "\#mm\/dd\/yyyy\#"
strSQL = "INSERT INTO Пациенты ( Фамилия, Инициалы, ДатаРождения, Пол ) Values ('" & Me.ПолеСоСписком2 & "', '" & Me.ПолеСоСписком4 & "', " & Format$(Me.Поле6, SQLDATE) & ", '" & Me.ПолеСоСписком13 & "');"
CurrentDb.Execute strSQL
Response = acDataErrAdded
DoCmd.Close acForm, "Поиск ввод пациентов"
DoCmd.OpenForm "Пациенты",, (И вот тут пробовал вставить фильтр. Надо как-то его сохранить и имя вкатать только) Плиз как его сюда вклинить? Составить запрос и сохранить как фильтр?
Else
Me![ПолеСоСписком2].SetFocus
Me![ПолеСоСписком2] = ""
End If
End If
End Sub
А может глобальную переменную состряпать и присваивать ей разные значения? Если из списка открываем, то одно значение и фильтр не пахает. Если с полясосписком - то другое значение и фильтр при открытии включается?
PS Если не понятно, то не стесняйтесь долбать вопросами.