powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление свободной формы
14 сообщений из 14, страница 1 из 1
Обновление свободной формы
    #39734806
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет. Есть код (ниже). Как после всех действий можно обнулить все поля формы для ввода новых данных? Пока только через DoCmd.Close и DoCmd.OpenForm реализовать получилось. Me.Undo, Refresh не работают.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
    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
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39734817
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LekksПока только через DoCmd.Close и DoCmd.OpenForm реализовать получилось.
Можно и так. А можно и просто все поля по одному зачистить (лично я бы делал именно так).

LekksMe.Undo, Refresh не работают.Работают... только так, как должны, а не как тебе хочется.
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39734819
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,
свободная форма...А в этом есть крайняя необходимость? Что на таблице или запросе никак?
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39734822
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку: свободные формы я лично принимаю для ввода критериев или выбора объекта(отчета)для вывода на печать или указать формат вывода.Для ввода же данных,лично я, свободные формы использую крайне редко
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39734823
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Акина,
глыбокоизвинясь прошу прощения-сообщение для ТС
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39734828
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuДля ввода же данных,лично я, свободные формы использую крайне редкоЯ же, наоборот, предпочитаю выполнять ввод только через свободные формы. И к тому в общем много резонов.
Первое - в свободной форме гораздо проще выполнять все необходимые проверки - как в процессе ввода, так и перед записью. При этом, что приятно, без каких-либо пересечений с существующими ограничениями в структуре и наполнении данных. А уж если требования к целостности экзотические, так свободная форма вообще единственный способ выполнить ввод данных без геморроя.
Второе - свободная форма позволяет легко делать черновики ввода или прерывать ввод на середине процесса, с сохранением текущего состояния.
Третье - полное единообразие в работе с данными, требующимися для выполнения контроля. Нравится DAO? ну делаем всё через DAO... не нравится? давай делать всё через ADO... но главное - всё. И не надо оглядываться и вспоминать, что привязанные данные требуют совсем иного подхода для общения с ними... да ещё фокус не потеряй - тьфу...
Ну и ещё всякого по мелочи...
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39734864
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LekksКак после всех действий можно обнулить все поля формы для ввода новых данных?

Если форма действительно свободная, пропишите нужные значения в поля, например
Код: vbnet
1.
2.
3.
4.
Me.Поле1 = ""
Me.Поле2 = 0
........
Me.Флажок38 = False



Если это нужно часто, можно оформить в виде отдельной процедуры формы и вызывать её потом откуда угодно...
Тоже люблю свободные формы, ничем не скован, больше степеней свободы...
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39734869
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

А как поступаете с полями ввода даты?
Календарик то не показывается для свободного поля.
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39734875
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИгортанА как поступаете с полями ввода даты?

Обычно это = Date()
Если период, то начало и конец месяца
У меня обычно календарик это такая же независимая форма, которая вызывается и используется так же свободно и непринужденно
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39735034
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИгортанAkina,

А как поступаете с полями ввода даты?
Календарик то не показывается для свободного поля.

Показывается, если формат свободного поля - формат дат

AkinaLekksПока только через DoCmd.Close и DoCmd.OpenForm реализовать получилось.
Можно и так. А можно и просто все поля по одному зачистить (лично я бы делал именно так).

vmagЕсли форма действительно свободная, пропишите нужные значения в поля, например
Код: vbnet
1.
2.
3.
4.
Me.Поле1 = ""
Me.Поле2 = 0
........
Me.Флажок38 = False



Если это нужно часто, можно оформить в виде отдельной процедуры формы и вызывать её потом откуда угодно...
Тоже люблю свободные формы, ничем не скован, больше степеней свободы...

Так и сделаю, просто думал, может другие варианты есть кроме моего и этого. А для ввода данных в несколько разных таблиц из одной формы мне больше импонирует именно свободная форма вместо трех-четырех подчиненных в одной. На свободной и поля можно расположить как будет удобно.

vmag У меня обычно календарик это такая же независимая форма, которая вызывается и используется так же свободно и непринужденно

Заинтересовало. Можно пример, если не жалко?
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39735065
Прогер_самоучка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LekksЗаинтересовало. Можно пример, если не жалко?Вот вам для примера.
Собственно, вызываете в любой форме.
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39735081
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прогер_самоучка, спасибо
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39735194
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LekksПоказывается, если формат свободного поля - формат датпризнаюсь, раньше считал, что на свободном поле нельзя показать календарик....
Или это из 2007 у меня тянется.
Как раз когда то, отсутствие календарика меня остановило в работе со свободными.
Есть повод переосмыслить свой принцип работы.
...
Рейтинг: 0 / 0
Обновление свободной формы
    #39735215
Lekks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Игортан]Lekks Или это из 2007 у меня тянется.

У меня 2007 )))
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление свободной формы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]