12. При разработке баз данных очень часто встречаются случаи, когда необходимо автоматическим способом заполнить поля в форме. Это показано в этом примере (..\15 Формы\la_from2.accdb\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
02. Данный пример показывает как можно быстро создать документ Word из Microsoft Access. При этом документ будет создаваться в текущей папке, откуда запущено приложение. Также не забудьте создать ссылку на Word: C:\Program Files\Microsoft Office\OFFICE11\MSWORD.OLB
'==============================================================
' Назначение
' Создать документ Word в текущей папке
'
Private Sub butExecute_Click()
Dim app As Word.Application ' Приложение программы
Dim strDOC As String ' Имя файла
On Error GoTo 999
' Назначаем имя документа
strDOC = Application.CurrentProject.Path "\" "la_automat.doc"
Set app = New Word.Application ' Создаем документ
app.Visible = False ' Скрываем документ
app.Documents.Add ' Добавляем документ
app.Selection.Text = Me.Body ' Вставляем текст
app.ActiveDocument.SaveAs strDOC ' Сохраняем документ
app.Quit ' Закрываем документ
MsgBox "Файл: " strDOC " создан!", vbExclamation, "Документ Word"
' Назначение ссылки
With Me.myWordDoc
.HyperlinkAddress = strDOC ' Создаем ссылку
.Visible = True ' Отображаем элемент
End With
Exit Sub
999:
MsgBox Err.Description ' Ошибка
Err.Clear
app.Quit
End Sub
11. Выделить всю строки в форме возможно, если Вы используете программных код указанный в описании.
Private Sub Form_Current()
Dim N As Long
On Error Resume Next
Me.Repaint
N = Me.SelTop
If N 1 Then N = 1
Me.SelTop = N
Me.SelLeft = 1
Me.SelWidth = 10
Me.SelHeight = 1
Err.Clear
End Sub
07. Использование ключевого слова UPDATE в запросах позволит вам обновить сразу много записей.
Private Sub butExecute_Click()
Dim dbs As Database
On Error GoTo 999
Set dbs = CurrentDb
dbs.Execute "UPDATE [Пример 07] SET [Цена] = [Цена]+" Me.Delta ";"
MsgBox "Цена в таблице [Пример 07] изменена!", vbExclamation
Exit Sub
999:
MsgBox Err.Description, vbCritical, "Создание поля"
Err.Clear
End Sub