MS Access VBA - добавление строки в текстовое поле, повторное добавление при обновлении - PullRequest
0 голосов
/ 12 апреля 2019

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

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

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

1 Ответ

0 голосов
/ 12 апреля 2019

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

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

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

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

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

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

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