Рейтинг:
4
Gustav Brock
Я понятия не имею, что у тебя за дела. Маска А и Маска Б может быть, и объяснение очень запутанное.
Название, однако, понятно, и ответ прост. В форме, где это поле привязано к элементу управления (текстовому полю), назначьте глобальное значение элементу управления (текстовому полю). Ценность собственность, скажем, в OnOpen событие формы:
Me!YourTextbox.Value = username1
Atipos
Проблема в том, что поле не имеет свойства value. Это дает мне такую ошибку: "объект не поддерживает это свойство или метод"
Поле "сотрудник", с его помощью я могу выбрать сотрудника из списка, когда я выберу имя сотрудника, он откроет форму входа в систему, с этим я поставлю имя пользователя и пароль.
Что мне нравится делать, так это то, что имя пользователя
Gustav Brock
Я вижу на так, что у вас нет поля, но есть метка. Для надписи, присвоить глобальной в свойство caption метки.
Atipos
Я очень ценю вашу доступность и благодарю вас. Используя свойство caption, Что я хотел бы сделать, это отлично работает. Но, к сожалению, меняется название колонки. Благодаря вам я понимаю, что должен действовать именно на этом поле.
Теперь я писал::
Я.Employee_Label.Заголовок = имя_пользователя1
Сделав это, как написано чуть выше, измените заголовок колонки.
Если вы сейчас поставите:
Меня.EmployeeText.Значение = имя_пользователя1
Я возвращаюсь к ошибке времени выполнения 2113, значение, которое вы вводите, недопустимо для этого поля.
https://imgur.com/JuMjLNn
- Я загружаю небольшое изображение того, что мне нравится менять с помощью глобального
Gustav Brock
Похоже, что ваше поле-это combobox, привязанный к полю. Затем вы (как правило) должны указать идентификатор имени пользователя, но - из вашего кода - это уже кажется таковым и то, что хранится в username1.
Попробуйте немного отладить и убедитесь, что вы вручную можете ввести значение в таблицу.
Atipos
Если источник строк комбобокса является
Выберите [расширенные сотрудники].ID, [сотрудники продлены].[Имя сотрудника] от [расширенные сотрудники];
должен ли я работать над этим? Я имею в виду, со мной.X.Value=username1.
Я не знаю, смогу ли я добраться до объекта, который находится в другой таблице базы данных.
Gustav Brock
Если ваш combobox привязан к первому полю id, а username1 содержит идентификатор (из строки: username1 = Me.tb_ID.Value), вы должны иметь возможность назначить этот идентификатор combobox, и он отобразит имя.
Чтобы "добраться" до другого объекта из другой таблицы, настройте запрос так, чтобы он имел соединение с этой таблицей.
Atipos
Я прошу прощения за свое невежество, но я новичок с vba и доступом. По этой причине я спрашиваю: чтобы присвоить идентификатор username1 combobox, нужно ли мне делать это через Employee_AfterUpdate ()?
Gustav Brock
Из формы вы можете сделать это в любом месте. Выше я предположил текстовое поле, теперь одна кодовая строка должна гласить::
Меня!YourCombobox.Значение = имя_пользователя1
Atipos
Это всегда приводит меня к ошибкам. Что, если я просто проверю, является ли username1=employee?
Может ли это сработать?
Gustav Brock
В чем же ошибка? И какое значение вы ему придаете? И это действительное удостоверение личности?
Atipos
Всегда время выполнения 2113 введенное значение недопустимо для этого поля.
Я не понимаю, потому что, когда я сделал это, я.Rmployee_Label.Caption=username1, это работает, но измените метку.
С помощью свойства Value выдайте эту ошибку...
Gustav Brock
Проверьте, какое значение он имеет и какое значение вы пытаетесь присвоить. Значение элемента управления и заголовок связанной с ним метки (если таковая существует) - это две разные вещи. Значение должно соответствовать типу данных, привязанному к элементу управления. Подпись должна быть строкой.
Atipos
Я понимаю, что глобальная переменная-это не строка. Но я объявил его "публичным именем пользователя 1 Как строку"...
Это потому, что если я переименую combobox Employee1 (когда это был сотрудник, он был в отличие от другого сотрудника), а затем:
Меня.Employee1.Значение = имя_пользователя1
Получается, что введенное вами значение не является допустимым для данного поля.
Gustav Brock
Если вы объявите глобальную переменную как String, она будет содержать строку.
Если tb_ID-это число, то username1 должно быть объявлено как Long:
имя_пользователя1 = меня.tb_ID.Значение
Atipos
Да, я уже объявил username1=Me.tb_ID.Value.
tb_ID-это имя текстового поля в маске входа, поэтому я помещаю в него текст (строку), поэтому username1 должен быть строкой.
(Кстати, спасибо Вам большое за то, что помогли мне в этот момент, я надеюсь, что у вас будут фантастические выходные!)
Gustav Brock
Итак, ID-это имя пользователя? Обычно ID-это число (длинное), и оно не соответствует вашему SQL:
Выберите [расширенные сотрудники].ID, [сотрудники продлены].[Имя сотрудника] от [расширенные сотрудники];
где, я думаю, имя-это имя пользователя.
Atipos
Источник строки предназначен для сотрудника, которого вы можете видеть на изображении. Это для маски А.
Идентификатор tb_ID-это маска входа, имя пользователя, которое я только что назвал tb_ID
Gustav Brock
Это очень запутанно. Вы должны назвать свои поля и элементы управления, чтобы отразить содержимое.
Если username1 содержит имя, которое должно соответствовать [Employees Extended].[Имя сотрудника], вы должны привязать combobox ко второму полю/столбцу, а не к первому - как это делается по умолчанию.
Atipos
Я понял, в чем ошибался. Я не помнил, чтобы ставил Employee как целое число, поэтому username1 не позволил мне ввести его.
Изменил тип, и теперь он работает отлично. Сообщите о своем ответе как о "принятом решении", потому что вы прекрасно объяснили.
Извините за беспорядок, большое вам спасибо
Gustav Brock
Отлично! Рад, что ты с этим разобрался.
Gustav Brock
Оно имеет. Возможно, вам следует раскрыть свой код.
Atipos
Я обновлю код по основному вопросу.
Gustav Brock
ОК. Но вы, похоже, ничему не присваиваете имя пользователя 1.