Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление свободной формы / 14 сообщений из 14, страница 1 из 1
18.11.2018, 16:07
    #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
18.11.2018, 17:29
    #39734817
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление свободной формы
LekksПока только через DoCmd.Close и DoCmd.OpenForm реализовать получилось.
Можно и так. А можно и просто все поля по одному зачистить (лично я бы делал именно так).

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

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



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

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

Обычно это = Date()
Если период, то начало и конец месяца
У меня обычно календарик это такая же независимая форма, которая вызывается и используется так же свободно и непринужденно
...
Рейтинг: 0 / 0
19.11.2018, 11:32
    #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
19.11.2018, 11:57
    #39735065
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление свободной формы
LekksЗаинтересовало. Можно пример, если не жалко?Вот вам для примера.
Собственно, вызываете в любой форме.
...
Рейтинг: 0 / 0
19.11.2018, 12:16
    #39735081
Lekks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление свободной формы
Прогер_самоучка, спасибо
...
Рейтинг: 0 / 0
19.11.2018, 16:11
    #39735194
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление свободной формы
LekksПоказывается, если формат свободного поля - формат датпризнаюсь, раньше считал, что на свободном поле нельзя показать календарик....
Или это из 2007 у меня тянется.
Как раз когда то, отсутствие календарика меня остановило в работе со свободными.
Есть повод переосмыслить свой принцип работы.
...
Рейтинг: 0 / 0
19.11.2018, 16:33
    #39735215
Lekks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление свободной формы
[quot Игортан]Lekks Или это из 2007 у меня тянется.

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


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