MS Access VBA — добавить строку в текстовое поле, повторно добавить при обновлении

#ms-access #vba

#ms-access #vba

Вопрос:

Я пытаюсь создать форму MS Access, в которой пользователь вводил бы комментарии в текстовое поле (ввод), и текст каждый раз добавлялся бы к сводному окну, которое было бы выделено серым цветом и не редактировалось.

Входные комментарии будут автоматически отформатированы, чтобы включить дату, метку времени и имя пользователя, используя следующий код:

 Private Sub IncidentDescriptionInput_AfterUpdate()
    Dim Output As String
    Output = Me!IncidentDescriptionInput.Value
    Output = Output amp; " " amp; Format(Now(), "dd-mmm-yy") amp; "/" amp; Format(Now(), "hh:nn") amp; "/" amp; Environ("UserName") amp; ";"
    Me!IncidentDescriptionInput.Value = Output
End Sub
  

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

1. И каков ваш точный вопрос? Что вы уже написали, чтобы попытаться выполнить это?

Ответ №1:

Ваш текущий код уже демонстрирует методы, необходимые для достижения вашей цели:

  • Обновление значения, хранящегося в элементе управления формой, как часть обработчика события для AfterUpdate события. Вы уже делаете это в своем существующем коде с Me!IncidentDescriptionInput.Value = Output

  • Извлечение существующего значения элемента управления формой для объединения с другой строкой. Вы уже делаете это в своем существующем коде с Output = Me!IncidentDescriptionInput.Value

  • Объединение существующего значения элемента управления формы с другой строкой. Вы уже делаете это в своем существующем коде с Output = Output amp; " " amp; Format(Now(), "dd-mmm-yy") ...

Итак, у вас уже есть строительные блоки, необходимые для достижения желаемого результата.

Предполагая, что вызывается окно сводки IncidentDescriptionSummary , тогда код может быть изменен на что-то вроде:

 Private Sub IncidentDescriptionInput_AfterUpdate()
    Dim Output As String
    Output = IncidentDescriptionInput amp; " " amp; Format(Now(), "dd-mmm-yy/hh:nn/") amp; Environ("UserName") amp; ";"
    IncidentDescriptionInput = Output
    IncidentDescriptionSummary = IncidentDescriptionSummary amp; vbCrLf amp; Output
End Sub