Обновление свободной формы |
Private Sub SaveCmd_Click() On Error GoTo SaveCmd_Click_Error Dim ctl As Control Dim a As Integer Dim rstAcc As ADODB.Recordset For Each ctl In Me.Controls If IsNull(ctl) Then a = a + 1 Next ctl If a > 0 Then MsgBox "Не заполнены обязательные сведения." & vbCr & "Заполните все поля!!!", vbOKOnly + vbCritical, "НЕДОСТАТОЧНО ДАННЫХ" GoTo ExitHere End If Set rstAcc = New ADODB.Recordset With rstAcc .Open "Accounting", CurrentProject.Connection, adOpenDynamic, adLockPessimistic .AddNew .Fields("RegNum") = Me.Registration .Fields("RegDate") = Me.RegiDate .Fields("OffenceDate") = Me.FOffDate .Fields("OffenceTime") = Me.FOffTime .Fields("PlaceID") = Me.FOffPlace.Column(0) .Fields("TypeID") = Me.FOffType.Column(0) .Update Me.OffID = .Fields("OffenceID") End With rstAcc.Close With rstAcc .Open "OffenceSubj", CurrentProject.Connection, adOpenDynamic, adLockPessimistic .AddNew .Fields("OffensID") = Me.OffID .Fields("SuspID") = Me.FsuspID .Update End With rstAcc.Close With rstAcc .Open "Process", CurrentProject.Connection, adOpenDynamic, adLockPessimistic .AddNew .Fields("OffenID") = Me.OffID .Fields("OfficerID") = Me.FActor.Column(0) .Fields("StatusID") = 1 .Update .AddNew .Fields("OffenID") = Me.OffID .Fields("OfficerID") = Me.FDPNSI.Column(0) .Fields("StatusID") = 2 .Update End With rstAcc.Close With rstAcc .Open "AnalitycAcc", CurrentProject.Connection, adOpenDynamic, adLockPessimistic .AddNew .Fields("OfID") = Me.OffID .Fields("PostsID") = Me.Fpost.Column(0) .Fields("ChangeID") = Me.FChg.Column(0) .Update End With rstAcc.Close Set rstAcc = Nothing MsgBox "Запись сохранена", vbOKOnly + vbInformation, "" Тут надо обновить поля On Error GoTo 0 ExitHere: Exit Sub SaveCmd_Click_Error: MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure SaveCmd_Click, line " & Erl & "." End Sub
|
Изменить значение в форме через макрокоманды |
https://www.sql.ru/forum/1305493/izmenit-znachenie-v-forme-cherez-makrokomandy
|
Создание связей в MDB на SQL Server, сделать не доверенное соединение. |
Строка подключения |
---|
ODBC;DRIVER=SQL Server;SERVER=testServer;UID=testUser;PWD=Parol;APP=NameForSessionDetection;DATABASE=TestDB |
Dim TabDef As TableDef Set TabDef = dstDB.CreateTableDef(tName) TabDef.Connect = ConnStringDAO TabDef.SourceTableName = tName dstDB.TableDefs.Append TabDef
dstApp.DoCmd.TransferDatabase acLink, "ODBC Database", ConnStringDAO, acTable, "dbo." & tName, tName, , True
|
Код VBA работает в ACCDB и не работает в ACCDE |
Private Sub Form_Type_BeforeUpdate(Cancel As Integer) End Sub ........ Private Sub Form_Load() End Sub .........У меня такие подпрограммы возникают, когда надо, например, создать код для события Form_Close(), а в редакторе VBA первым всегда создаётся Form_Load(), затем только Form_Close(). Потом удаляю вручную. Или не удаляю...
https://www.sql.ru/forum/1305455/kod-vba-rabotaet-v-accdb-i-ne-rabotaet-v-accde
|
Добавление данных из полей формы в таблицу. |
https://www.sql.ru/forum/1305379/dobavlenie-dannyh-iz-poley-formy-v-tablicu
|
Удаление записи из таблицы (странности) |
MyDb.TableDefs.Refresh If DCount("*", TBL_NAME, USLOVIE) = 0 Then Me!messag = Me!messag & vbCrLf & "Запись " & USLOVIE & " УЖЕ удалена из " & TBL_NAME & " базы: " & BAZA_NAME Else MyDb.Execute "DELETE FROM " & TBL_NAME & " where " & USLOVIE Me!messag = Me!messag & vbCrLf & "Запись " & USLOVIE & " удалена из " & TBL_NAME & " базы: " & BAZA_NAME End If
DCount("*", TBL_NAME, USLOVIE) = 1
https://www.sql.ru/forum/1305369/udalenie-zapisi-iz-tablicy-strannosti
|
Получить дату из формы |
|
Поведение макроса AutoExec |
|
И снова фильтрация |
|
удаленное копирование файлов |
https://www.sql.ru/forum/1305244/udalennoe-kopirovanie-faylov
|
Ограничение ухода с текущей записи |
https://www.sql.ru/forum/1305214/ogranichenie-uhoda-s-tekushhey-zapisi
|
Ограничение ухода с текущей записи |
http://www.sql.ru/forum/1305214/ogranichenie-uhoda-s-tekushhey-zapisi
|
лечение таблиц Access |
|
лечение таблиц Access |
|
Передать свой Type в/через Event |
+ |
'параметры для передачи поклассу прослушки Public Type AlterParams NameFrmWork As String LineId As Long TypeComm As Long TypeWork As Long End Type |
+ |
Public Event Alteration(ByVal MyFrm As String, ByVal TypeWork As Long, ByVal LineId As Long, ByVal TypeBtn As Long, ByVal ParentWin As Long) '--------------------------------------------------------------------------------------- ' Procedure : RaiseAlteration ' Purpose : переброска параметров из событийной формы в слушающую '--------------------------------------------------------------------------------------- Public Sub RaiseAlteration(ByVal MyFrm As String, ByVal TypeWork As Long, ByVal LineId As Long, ByVal TypeBtn As Long, ByVal ParentWin As Long) RaiseEvent Alteration(MyFrm, TypeWork, LineId, TypeBtn, ParentWin) End Sub '--------------------------------------------------------------------------------------- ' Procedure : Instance ' Purpose : поднятие класса и возврат ссылки на него в вызывающую форму '--------------------------------------------------------------------------------------- Public Property Get Instance() As clsAlterationService Set Instance = Me End Property |
Public Event Alteration(AlterParam As AlterParams) '--------------------------------------------------------------------------------------- ' Procedure : RaiseAlteration ' Purpose : переброска параметров из событийной формы в слушающую '--------------------------------------------------------------------------------------- Public Sub RaiseAlteration(AlterParam As AlterParams) RaiseEvent Alteration(AlterParam) '-->бьет ошибку End Subне прокатывает. В переводе
https://www.sql.ru/forum/1305193/peredat-svoy-type-v-cherez-event
|
Передать свой Type в/через Event |
+ |
'параметры для передачи поклассу прослушки Public Type AlterParams NameFrmWork As String LineId As Long TypeComm As Long TypeWork As Long End Type |
+ |
Public Event Alteration(ByVal MyFrm As String, ByVal TypeWork As Long, ByVal LineId As Long, ByVal TypeBtn As Long, ByVal ParentWin As Long) '--------------------------------------------------------------------------------------- ' Procedure : RaiseAlteration ' Purpose : переброска параметров из событийной формы в слушающую '--------------------------------------------------------------------------------------- Public Sub RaiseAlteration(ByVal MyFrm As String, ByVal TypeWork As Long, ByVal LineId As Long, ByVal TypeBtn As Long, ByVal ParentWin As Long) RaiseEvent Alteration(MyFrm, TypeWork, LineId, TypeBtn, ParentWin) End Sub '--------------------------------------------------------------------------------------- ' Procedure : Instance ' Purpose : поднятие класса и возврат ссылки на него в вызывающую форму '--------------------------------------------------------------------------------------- Public Property Get Instance() As clsAlterationService Set Instance = Me End Property |
Public Event Alteration(AlterParam As AlterParams) '--------------------------------------------------------------------------------------- ' Procedure : RaiseAlteration ' Purpose : переброска параметров из событийной формы в слушающую '--------------------------------------------------------------------------------------- Public Sub RaiseAlteration(AlterParam As AlterParams) RaiseEvent Alteration(AlterParam) '-->бьет ошибку End Subне прокатывает. В переводе
http://www.sql.ru/forum/1305193/peredat-svoy-type-v-cherez-event
|
Перехват CTRL+S |
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Call procПерехватКлавиш(KeyCode, Shift, Form.Name) End Sub Public Sub procПерехватКлавиш(KeyCode As Integer, Shift As Integer, frmname As String) If KeyCode = vbKeyS And Shift = acCtrlMask Then MsgBox "CTRL+S" 'вставил для проверки работы DoCmd.Save acForm, frmname End If End Sub
|
Перехват CTRL+S |
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Call procПерехватКлавиш(KeyCode, Shift, Form.Name) End Sub Public Sub procПерехватКлавиш(KeyCode As Integer, Shift As Integer, frmname As String) If KeyCode = vbKeyS And Shift = acCtrlMask Then MsgBox "CTRL+S" 'вставил для проверки работы DoCmd.Save acForm, frmname End If End Sub
|
ComboBox |
|
ComboBox |
|