powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переход к новой записи в форме Access с условием...
34 сообщений из 34, показаны все 2 страниц
Переход к новой записи в форме Access с условием...
    #38612867
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
У меня вопрос. Разложу по полочкам.
Есть форма "Main_form" ( Pic01 ) с выпадающим списком значений "ПолеСоСписком10" .
Эти значения можно добавлять в форме "Frukti" ( Pic02 ). Нажимая на кнопу "изменить элементы списка" у поля "ПолеСоСписком10" или же по запросу( Pic03 ), когда вводимый элемент отсутствует в списке, у меня появляется форма "Frukti" для добавления новых записей в список. И все бы хорошо, только я хочу, чтобы форма "Frukti" открывалась сразу на новую запись в этих двух случаях!!! когда нужно добавить или изменить запись. Нужен VBA....

P.S. Формочка сделана на скорую руку, для примера, на рабочей форме все сложнее, там по двойному клику по полю открывается форма именно с тем значением, которое введено в соответствующую запись основной формы. Потому я хочу добавить в VBA код, который позволил бы только при изменении и добавлении записей открывать форму и переходить сразу на новую запись.
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38612893
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555,
Насколько удалось протелепатить-обработайте событие ОтсутствиеВсписке (Вы не знаете как приложить файл?)
при вводе с клавиатуры значения,которого нет в списке и нажатии "ентер"-оно остается в полеСоСписком и создается новая запись в таблице,являющейся источником списка
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub полеСоСписком10_NotInList(NewData As String, Response As Integer)
    Dim intNewCategory As Integer, intTruncateName As Integer, strTitle As String, intMsgDialog As Integer
      Dim rs As DAO.Recordset
    strTitle = "Такой пункт отсутствует в списке "
    intMsgDialog = vbYesNo + vbQuestion + vbDefaultButton1
    intNewCategory = MsgBox("Добавить новый пункт?", intMsgDialog, strTitle)
If intNewCategory = vbYes Then
 Set rs = CurrentDb.OpenRecordset("ТаблицаИсточникПоляСоСписком")
        rs.AddNew
        rs!Наименование = NewData
        rs.Update
        DoCmd.RunCommand acCmdUndo
        Response = acDataErrAdded
    End If
End Sub
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38612897
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку-естесстно оно добавляется в список
все это происходит не только после нажатия "ентер", а вообще при обновлении поля любым способом
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38612900
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Прощу прощения, что-то я туплю... Прикрепляю сам файл...

Спасибо за код, но это не совсем то, что мне нужно. В рабочем файле Access, в формочке, которая вылетает - там полей 15, которые нужно заполнить. Плюс имеет 3 подчиненные формочки:)) А поле со списком в основной форме показывает значение состоящее из трех полей, которые я соединил конкатенацией. Поэтому, нужно, чтобы открывалась форма и создавалась новая запись!
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38612941
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555,
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38612947
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Очень круто, даже через чур! Оставлю файлик себе. Но давай упростим все же, пусть просто открывается окно с новой записью(т.е. тупо с пустыми полями). Нажал на кнопочку "изменить элементы списка" и открывается окно "с новой записью" и пустыми полями. После заполнения всех полей, в основной форме пользователь сам выбирает нужное значение. Понимаешь, все что пишу это обязательно должно быть именно так.... У меня очень сложная форма:(
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38612949
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Даже окно с вопросом "добавить новый элемент" не нужно! Хочу, чтобы было все максимально просто! Спасибо за помощь!
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613006
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Вот мой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub ПолеСоСписком10_DblClick(Cancel As Integer)
On Error GoTo er1
DoCmd.OpenForm "Frukti", , , "Номер=" & Me.[Номер]
Exit Sub
er1:
End Sub


Соответственно, щелкая по полю, вылетает окно с нужной записью. Если нужно добавить в список еще записи, щелкаю на кнопку "изменить элементы списка", вылетает окно и встает на первую запись, а мне нужно, чтобы он создавал новую запись! Теперь, вроде, понятно написал:)
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613011
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555, внимательно ознакомься с параметрами процедуры, особенно обрати внимание на выделенное.
Код: vbnet
1.
OpenForm(FormName, [View As AcFormView = acNormal], [FilterName], [WhereCondition], [DataMode As AcFormOpenDataMode = acFormPropertySettings], [WindowMode As AcWindowMode = acWindowNormal], [OpenArgs])
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613014
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555... Если нужно добавить в список еще записи, щелкаю на кнопку "изменить элементы списка"....а что Вам мешает обработать это нажатие:
Код: vbnet
1.
DoCmd.GoToRecord acDataForm, "имяФормы", acNewRec
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613017
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и не забывайте "изменитьЭлементСписка" это одно, а "добавитьЭлемент" это другое + в любом случае обновить список
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613018
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuа что Вам мешает обработать это нажатие:
Код: vbnet
1.
DoCmd.GoToRecord acDataForm, "имяФормы", acNewRec



А как это нажатие или добавление называется? Просто событие: Private Sub ПолеСоСписком10_ NotInList не прокатит! Нужно именно когда нажимаю на кнопку "изменить элементы списка" , или же если элемент отсутствует в списке!
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613031
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555,
это событие кнопки Click()
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613033
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkueric555,
это событие кнопки Click()

Не катит! У меня поле с выпадающим списком. Посмотрите приложенный файлик в сообщении: 15870704
Click() вообще не то!
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613059
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555Соответственно, щелкая по полю, вылетает окно с нужной записью.Это происходит при открытой на существующей записи главной форме eric555Если нужно добавить в список еще записи, щелкаю на кнопку "изменить элементы списка", вылетает окно и встает на первую запись, а мне нужно, чтобы он создавал новую запись! Теперь, вроде, понятно написал:)добавили новый элемент списка и юзер изменил этим значением поле связи в главной форме,которая висит открытая на существующей записи-капец всем данным-я считаю что изменение этого поля в существующих записях должно быть невозможно (доступ к этому полю разрешать только в новых записях-при изменении списка главная форма должна быть на новой записи )eric555.... Понимаешь, все что пишу это обязательно должно быть именно так.... У меня очень сложная форма:(Да хоть мегасложная(если так-вызывает сомнения структура). Понимаешь, твоя задача сделать так что бы юзер при всем желании не смог испохабить данные-при том как ты пытаешься решить задачу это возможно, разве что запретить изменения (AllowEdits=false)или доступ к полю в существующих записях (if not me.newRecord then me.полеСоСписком.enabled=false). Хотелось бы глянуть на твою БД (а не пример)
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613077
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Мне кажется, что я Вас запутал!

Нужно вместо события Click() задать событие "изменение элементов списка" т.е. чтобы аксес запускал форму для добавления элементов списка и перемещался сразу на новую запись(все поля были не заполненными). После заполнения всех полей в вылетающей форме, закрываем форму и в списке выбираем новый элемент. Этот новый элемент - одно поле (ID) вылетающей формы.

Вот мой код, только он с Click() .
Код: vbnet
1.
2.
3.
Private Sub ПолеСоСписком10_Click()
DoCmd.GoToRecord acDataForm, "имяФормы", acNewRec
End Sub



А по умолчанию выходит так, я нажимаю на "изменение элементов списка", вылетает форма изменения элементов списка, я нажимаю "новая запись", добавляю данные, закрываю вылетающую форму и выбираю новый элемент в основной форме. Все бы хорошо, только бесит все время нажимать "новая запись"!!!

P.S. Мою БД не могу выложить, она не на домашнем компе и весит больше 1,5 Мб:( Я потому выложил тестовую версию, но в ней в точности все как на рабочей!
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613088
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555А по умолчанию выходит так, я нажимаю на "изменение элементов списка", вылетает форма изменения элементов списка, я нажимаю "новая запись", Вам же говорил Панург о пятом аргументе метода
Код: vbnet
1.
DoCmd.OpenForm "Frukti", , , ,acFormAdd

и форма откроется на новой записи(с пустыми полями-а зачем её открывать на существующей записи-непонятно)
Код: vbnet
1.
DoCmd.OpenForm "Frukti", , , "Номер=" & Me.[Номер] 'у Вас так
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613111
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555Нужно вместо события Click() задать событие "изменение элементов списка" т.е. чтобы аксес запускал форму для добавления элементов списка и перемещался сразу на новую запись(все поля были не заполненными). Нет такого события-есть событие
изменение_элементов_списка_Click (нажатие кнопки "изменение элементов списка") Так:
Код: vbnet
1.
2.
3.
Private Sub изменение_элементов_списка_Click()
DoCmd.OpenForm "Frukti", , , ,acFormAdd
End Sub
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613252
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Ну вот Вы, кажется, меня поняли)))
У меня сейчас так:
Код: vbnet
1.
2.
3.
Private Sub ПолеСоСписком10_Click()
DoCmd.OpenForm "Frukti", , , , acFormAdd
End Sub


Не помогает:( Жму на кнопку "изменение элементов списка" , вылетает форма на первой записи:(
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613256
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku и форма откроется на новой записи(с пустыми полями-а зачем её открывать на существующей записи-непонятно)
Код: vbnet
1.
DoCmd.OpenForm "Frukti", , , "Номер=" & Me.[Номер] 'у Вас так


На существующей записи открывается по даблклик! Почему не понятно? По-моему, очень даже логично: нажал два раза по существующей записи, открылась формочка с соответствующей записью (можно отредактировать). Нажал на изменение элементов списка, открылась формочка и перескочила на новую запись для добавления.
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613263
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555,
ну раз она открывается по даблклик на поле-значит где-то указано чтоб это происходило, может открытие на первой записи формы для добавления с этим как-то связано-не видя модуль формы ничего сказать нельзя-ищите.
Машинная программа выполняет то, что вы ей приказали делать, а не то, что бы вы хотели, чтобы она делала.
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613272
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Да, Вы правы, проще показать. Я убрал все лишнее. Запустите мейн форм и попробуйте в "поле со списком" щелкнуть "изменение элементов списка" - откроется форма с самой первой записью!
Не путайте с дабл-клик, по нему у меня открывается именно та запись, которая выбрана.
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613306
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555,
в том что Вы дали кнопки вообще нет-это не важно
разберитесь с тем что написано на форме. Ваше поле лучше удалить (а может и всю форму переделать) и сделать заново.
Акс создал системную таблицу которой быть не должно (f_3C9D030BEFB141AD8BFCD832ED08B67D_Data)
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613312
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Скорее всего у Вас акс 2003... в новом 2010 аксе под списком появляется кнопка "изменить элементы списка" (см. приложенный файл). Если на нее нажать, вылетает форма Frukti. Но даже если кнопка у вас эта не появляется, то все равно внося в поле значение, которого нет в таблице Фрукты, появляется окно, что типа "указанный элемент отсутствует в списке, добавить?" Нажимаешь на да и так же вылетает эта долбанная форма, но только на первую запись... а мне нужно на новую....

блин,... я уже готов сдаться, видимо, это не реализовать. Кнопку рисовать не получится, она не нужна!!!
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613468
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555,
я же Вам писал что пока Вы не пересоздадите полеСоСписком(правильно-первым в SELECT ключевое поле,а не отображаемое, количество столбцов-2, их ширина 0;3 см,а можно мастером )это займет минут 5,а иначе сдавайтесь-коль готовы
А Вы смотрели,то что я выложил-там все работает, только с новым полем. Кнопку пришлось добавлять а в 2010 она добавляется сама-ШАЙТАН
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613503
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

В вашем примере то, что мне нужно происходит по нажатию на кнопку 16 и по дабл клик на поле со списком. А мне надо, чтобы форма с новой записью вылетала, когда жмешь на кнопку, которую о обвел в красный круг на картинке. Вот и все...
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613507
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot sdku]правильно-первым в SELECT ключевое поле, а не отображаемое, количество столбцов-2, их ширина 0;3 см,а можно мастером quot]
Это без разницы! Можно и так и так, я же указываю какой столбец присоединенный. В вашем случае пришлось просто скрыть ключевой столбец. Я так делаю в .adp файлах, там, действительно, по-другому никак:)
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613579
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы будете читать то,что Вам пишут.Ваш источник:
Код: vbnet
1.
SELECT Фрукты.Наименование, Фрукты.Номер FROM Фрукты ORDER BY Фрукты.Наименование;

источник созданный мастером (обратите внимание на порядок следования стлбцов)
Код: vbnet
1.
SELECT [Фрукты].[Номер], [Фрукты].[Наименование] FROM [Фрукты]

присоединенный столбец (данные):у Вас 2, в мастере 1
число столбцов(макет): у Вас 1,в мастере 2
ширина столбцов(макет): у Вас пусто,в мастере 0см;2,54см
Если Вы считаете что это без разницы-успехов в решении задачи,которая не имеет решения
Читайте книшки и не используйте в работе (например полеСоСписком) то,в работе чего не разобрались хотя-бы на 50%
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613619
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Да, блин, неужели Вы не понимаете, что я уже и так и так перепробовал!!! Это сути проблемы не меняет! Я жму на эту долбанную кнопку (не ту, которую Вы сделали, а ту которая обведена в красном кружке на рисунке) и окно не всплывает с новой записью!!!!!!! Хоть в начало ставь присоединенный столбец, хоть в конец! Мне кажется, что Вы меня до сих пор не поняли...
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613638
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555,
Да, блин, неужели Вы не понимаете, что не кнопка виновата, а поле
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613651
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555,

У формы "Frukti" в свойствах поставь "Вод данных - да". Измени немного код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub ПолеСоСписком10_DblClick(Cancel As Integer)
On Error Resume Next
DoCmd.OpenForm "Frukti", , , "Номер=" & Me.[Номер], acFormEdit
If Err.Number = 3075 Then
  MsgBox "Вбейте данные"
  Exit Sub
End If
On Error GoTo 0
End Sub


Так бу работать

А то вы тут до смертоубивства дойдёте....:)
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613653
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eric555,

Да. И потом список Requery сделай, что бы новые значения увидеть...
...
Рейтинг: 0 / 0
Переход к новой записи в форме Access с условием...
    #38613715
eric555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, дальше идет путаница еще сильнее! Надо создать те у заново, а мне придумать, как описать то, что я хочу доступно и правильно!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Переход к новой записи в форме Access с условием...
    #39372930
K0LbAzzeR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eric555Все, дальше идет путаница еще сильнее! Надо создать те у заново, а мне придумать, как описать то, что я хочу доступно и правильно!
Интересно решили проблему или нет? А то у меня походу подобная ситуация возникает :)
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переход к новой записи в форме Access с условием...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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