Доступ: пользователь ввел значение для метки

#forms #ms-access #textbox #vba

#формы #ms-access #текстовое поле #vba

Вопрос:

Я пытаюсь выяснить, как принять значение, введенное Form1 пользователем, а затем принять это значение и превратить его в метку Form2 . Так, например, если пользователь вводит «Apple» в Textbox1 in Form1 , как бы мне захватить это значение и ввести его в Label1 in Form2 .

Я знаю, что код для изменения метки

 Private Sub Command56_Click()
    Label1.Caption = "Something else"
End Sub
  

но я не уверен, как получить введенное пользователем значение из другой формы.

Комментарии:

1. Вы проверили, как ссылаться на элементы управления другой формы?

2. открываются ли обе формы одновременно, когда вы хотите это сделать? Что-то вроде Forms("Form2").Label1.Caption=Forms("Form1").Textbox1.value должно работать, если оба открыты.

3. @fbueckert я написал несколько таких запросов… но я действительно просто следовал шаблону и не узнал, как и почему он работает INSERT INTO Person_Name VALUES (Forms![Person_Name]![Person_Name_ID], Forms![Person_Name]![Prefix], Forms![Person_Name]![First_Name], Forms![Person_Name]![Middle_Name], Forms![Person_Name]![Last_Name], Forms![Person_Name]![Suffix], Forms![Person_Name]![Timestamp]);

4. Это ошибка? Работает ли это? У нас мало информации о том, что вы пробовали, и работает ли это или нет.

Ответ №1:

Это может быть:

 Private Sub Command56_Click()
    Label1.Caption = Nz(Forms("Form1").Textbox1.Value)
End Sub
  

Nz предотвращает ошибку, если текстовое поле 1 должно быть пустым (Null).

Комментарии:

1. Идеальный вариант. Я бы добавил, что это будет работать, только если обе формы (та, которая содержит кнопку Command56_Click и Form1 ) открыты одновременно. Если Form1 не загружено, оно не будет работать.

2. Форма будет открыта одновременно, так что это сработает!