Jayanta Modak Ответов: 1

Как сгенерировать автоматический номер счета-фактуры...


Я использую этот код, но здесь какая-то проблема, я не понимаю, в чем проблема
Проблема в том, что это прекрасно работает пустая база данных(значит, начиная с E000001) до E000009, после чего показывается номер E000011, после чего уже не возмущается номер. Пожалуйста, помогите мне.

Что я уже пробовал:

Sub generate_inv()
Dim id_tmp As String
Query = "select top 1 InoviceNo from Invoice order by InoviceNo desc"
cmd = New OleDbCommand(query, cn)
dr = cmd.ExecuteReader
If dr.HasRows = False Then
dr.Close()
id_tmp = "E000001"
Else
dr.Read()
id_tmp = Format(Mid(dr("InoviceNo"), 2, 6) + 1,"E00000#")
End If
dr.Close()
txtInvoice.Text = id_tmp
End Sub

1 Ответов

Рейтинг:
6

Richard MacCutchan

Проблема вызвана вашей строкой формата, которая включает в себя символ E который является управляющим символом форматирования. Вам нужно избежать его с помощью обратной косой черты таким образом:

id_tmp = Format(Mid(dr("InoviceNo"), 2, 6) + 1,"\E00000#")

или сделать что-то вроде:
num_tmp = Format(Mid(dr("InoviceNo"), 2, 6) + 1,"00000#")
id_tmp = "E" + num_tmp


Jayanta Modak

- Спасибо, сэр. Сделал это спасибо