Я пытаюсь создать собственный 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