【发布时间】:2020-12-08 00:32:10
【问题描述】:
我在文本框 (TxtNumb.Text) 中创建了自动编号,如果数据库为空,它将显示 REG01,如果有任何内容,则文本框将显示 REG02、REG03 等。
程序中有一个文本框来显示日期,格式为TxtDate.Text = Date.Now.ToString("dd MMM yyyy")。问题是如果日期更改(文本框再次变为 REG01),如何重置自动编号?
之前我已经成功了,但是如果第二天就不行了,这是我创建的代码:
Sub AutoNumb()
Call Connection() `This section is for connecting to the MS.Access DB`
dbCommand = New OleDbCommand("select Kd_Testing from tblTesting order by Kd_Testing desc", dbConn)
dataReader = dbCommand.ExecuteReader
dataReader.Read()
If Not dataReader.HasRows Then
TxtNumb.Text = "REG01"
Else
TxtNumb.Text = "REG" + Format(Microsoft.VisualBasic.Right(dataReader("Kd_Testing"), 2) + 1, "00")
End If
End Sub
之前,感谢您的回答。
#编辑,加法
我想通过保存到数据库中创建一个程序,如下例所示,我上面创建的代码只能自动编号,例如:REG01,REG02,...,REG05,等等。
|Kd_Testing|Name_Testing |Date_Testing|
|REG01 |Testing 01, day 20th|20 Aug 2020 |
|REG02 |Testing 02, day 20th|20 Aug 2020 |
|REG01 |Testing 01, day 21th|21 Aug 2020 |
|... |... |... |
|REG10 |Testing 10, day 21th|21 Aug 2020 |
|REG01 |Testing 01, day 22th|22 Aug 2020 |
然后在REG99期间,程序会出错,因此我想如果日期改变然后Kd_Testing重新开始到REG01。
【问题讨论】:
-
请发布 tblTesting 的架构。
-
感谢您的回答。下面是tblTesting的示意图:Kd_Testing(短文本(5))、Name_Testing(短文本(20))、Date_Testing(短文本(20))。
-
这里
dataReader.Read() If Not dataReader.HasRows Then这样做:If dataReader.Read() Then ..... Else .... -
这是多用户环境吗?是否有多个人使用此数据库?
-
为什么要将 Date_Testing 作为文本字段?它应该是一个日期字段!