Как заменить последние символы в зависимости от количества других текстовых полей - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь создать собственный Autonumber для формы регистрации.

В моей форме есть несвязанное текстовое поле (txtposition), которое получает номер текущей записи. Этот номер является фактическим номером записи. Если у меня есть 10 записей, и я на последней записи, она будет отображаться как 10.

У меня есть другое текстовое поле (txtref) со значением по умолчанию как 0000. Мне нужно получить значение txtposition (если 10 означает 2, а 100 означает 3) и заменить txtref с 0000 на 0010 или 0100 в зависимости от значения txtposition.

У меня уже есть другое несвязанное текстовое поле, которое объединит результаты при необходимости. Я пытаюсь выполнить это в запросе с:

spacepos: InStr([Forms]![Jobsheet]![Text516],"0000")
FN: Left([Forms]![Jobsheet]![Text516],[spacepos])

Я знаю, что для этого потребуется комбинация INSTR, LEN, RIGHT или LEFT и, конечно, REPLACE функции.

Мои знания в области кодирования слишком просты c, но я могу следовать.

Код, используемый для получения номера текущей записи для txtposition:

Private Sub Form_Current()
    On Error GoTo err_form_current

    Dim rst As Recordset
    Set rst = Me.RecordsetClone
    rst.Bookmark = Me.Bookmark
    Me.txtPosition = rst.AbsolutePosition + 1

exit_form_current:
    Set rst = Nothing
    Exit Sub

err_form_current:
    If Err = 3021 Then 'no current record
        Me.txtPosition = rst.RecordCount + 1
    Else
        MsgBox Error$, 16, "Error in Form_Current()"
    End If
    Resume exit_form_current
End Sub

1 Ответ

1 голос
/ 26 января 2020

Просто сохраните нормальное число, затем используйте форматирование для отображения с ведущими нулями. Format(10,"0000") будет отображаться как строка 0010. VBA не требуется. Можно даже отформатировать поле автонумерации, используя свойство Format или функцию Format. Однако, если нельзя разрешить пропуски в последовательности, автономный номер может не соответствовать вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...