12. При разработке баз данных очень часто встречаются случаи, когда необходимо автоматическим способом заполнить поля в форме. Это показано в этом примере
'==============================================================
' Заполнение реквизитов
Private Sub allFirms_AfterUpdate()
Dim rst As Recordset
On Error GoTo 999
Set rst = CurrentDb.OpenRecordset("SELECT * FROM [Фирмы] WHERE [Фирма]='" Me.allFirms "'")
If rst.RecordCount 0 Then
With rst
'Форму Вы можете связать с таблицей
Me.Фирма = rst!Фирма
Me.Банк = rst!Банк
Me.Счет = rst!Счет
Me.КорСЧЕТ = rst!КорСчет
End With
End If
rst.Close
Exit Sub
999:
MsgBox Err.Description
Err.Clear
End Sub
' Определяем максимальный номер документа
Private Sub Form_Current()
If Me.NewRecord = True Then
Me.Nдок.DefaultValue = 1 + funGetMaxNumber("SELECT Max([Nдок]) as NN FROM [Пример 12]")
End If
End Sub
'==============================================================
' Получаем максимальное число
Function funGetMaxNumber(sSQL As String) As Long
Dim dbs As Database, rst As Recordset
funGetMaxNumber = 0
On Error GoTo 999
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(sSQL)
If rst.RecordCount 0 Then
funGetMaxNumber = rst![NN]
End If
rst.Close
Exit Function
999:
Err.Clear
End Function