|
|
|
| Dim pst As myrecA
Private Sub Кнопка_Click()
If CurrentProject.AllForms(Форма2).IsLoaded = False Then
With pst
.ПолеА = Me.ПолеА
.ПолеБ = Me.ПолеБ
.ПолеВ = Me.ПолеВ
End With
DoCmd.OpenForm "Форма2", acNormal
With Forms("Форма2")
.Controls("ПолеX") = Me!ПолеА
.Controls("ПолеZ") = Me!ПолеБ
.Controls("ПолеY") = Me!ПолеВ
End With
'Если поставить здесь END то в форму2 занесутся нужные данные в нужные поля нужной записи
'А вот далее, и есть проблемма, как при нажатии Кнопка_Click, добавить следующие данные в нужные поля, а не в новую запись(в форме2 1-ой записи присвоенно порядка 150 полей)
End If
If CurrentProject.AllForms(Форма2).IsLoaded = True Then
doCmd.GoToRecord , "Форм2", acGoTo
With Forms("Форма")
.Controls("ПолеX1") = Me!ПолеА
.Controls("ПолеZ1") = Me!ПолеБ
.Controls("ПолеY1") = Me!ПолеВ
End With
End Sub
'В таком варианте, в открывщейся форме2 в поля добавляется сразу две записи, а при клике на кнопку второе поле меняет данные правильно, а хотел чтобы при открытии формы2 в поля добавлялось только первое значение, а при дальнейших кликах добавлялись в др. поля, но не в записи. ВОТ же задачка | |
|
| |
|
|
|
|
|
| Рассказываю по строчно ЧТО вы делаете
Dim pst As myrecA 'ну это видимо структура которую где-то выше описали
Private Sub Кнопка_Click()
'проверяем открыта ли форма Форма2 (причем видимо нужно в кавычки заключить "Форма2" - иначе это переменная
If CurrentProject.AllForms(Форма2).IsLoaded = False Then
'если форма не открыта заполняем структуру данными из текущей формы
With pst
.ПолеА = Me.ПолеА
.ПолеБ = Me.ПолеБ
.ПолеВ = Me.ПолеВ
End With
' открываем форму2
DoCmd.OpenForm "Форма2", acNormal
' в форме2 заполняем поля ПЕРВОЙ ЗАПИСИ значениями полей из текущей записи текущей формы
With Forms("Форма2")
.Controls("ПолеX") = Me!ПолеА
.Controls("ПолеZ") = Me!ПолеБ
.Controls("ПолеY") = Me!ПолеВ
End With
End If
' проверяем открыта ли форма Форма2 это условие ВСЕГДА ИСТИНА, т.к. если форма была не открыта, то вы ее открыли см. выше
If CurrentProject.AllForms(Форма2).IsLoaded = True Then
' переходим на какую-то запись в форме2 (здесь видимо опечатка (Форм2 вместо Форма2
doCmd.GoToRecord , "Форм2", acGoTo
' в какой-то форме с именем "Форма" (неизвестно открытой или нет) заполняем поля текущей записи (неизвестно какой) значениями полей из текущей записи текущей формы
With Forms("Форма")
.Controls("ПолеX1") = Me!ПолеА
.Controls("ПолеZ1") = Me!ПолеБ
.Controls("ПолеY1") = Me!ПолеВ
End With
End Sub
|
Вы полагаете из этого можно понять что вы хотите сделать? | |
|
| |
|
|
|
| Еще добавлю, что структура заполняется, но дальше нигде не используется.
А в строке If CurrentProject.AllForms(Форма2).IsLoaded = True Then имя формы без кавычек. И это работает?
angel_026, у вас в заголовках модулей присутствует строка Option Explicit? Похоже, что НЕТ. | |
|
| |
|
|
|
| Да у меня кодировщика нет, когда я копирую свой код в форум появляется всякая белеберда, вот поэтому ручками и дописываю, бывают ляпы,
Народ, Вы не злитесь на меня, повторяю, что я ЧАЙНИК и не притендую на звание магистра ACCESSа, просто мне набо сделать базу, что с букварем не получается, спрашиваю у ВАС, за ВАШИ ответы и комменты ОООООООЧЧЧЧЧЧЧЕЕЕЕЕЕЕЕННННННННННЬЬЬЬЬЬЬЬЬ благодарю | |
|
| |
|
|
|
|
когда я копирую свой код в форум появляется всякая белеберда
|
Чтобы кирилица переносилась правильно - копируйте код при включенной русской раскладке.
И вы не описали свой задачу. То, что вы делаете, противоречит основным принципам БД. Возможно есть более правильное решение. | |
|
| |
|