以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自动编号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62906)

--  作者:120785713
--  发布时间:2015/1/9 17:51:00
--  自动编号

哪位老师帮我看看哪里错了

If e.DataCol.name = "日期" AndAlso e.NewValue IsNot Nothing  Then
    Dim max As String = e.DataTable.SQLCompute("max(单号)", "日期 = # " & e.DataRow("日期") & " # ")

    Dim bh As String = "XS" & Format(e.DataRow("日期"), "yyyyMMdd")
    Dim idx As Integer = 0
    If max > "" Then
        idx = max.SubString(bh.Length)
    End If
    e.DataRow("单号") = bh & Format(idx+1, "000")
    e.DataRow.Save
End If

 


此主题相关图片如下:hhhhhh.jpg
按此在新窗口浏览图片

[此贴子已经被作者于2015-1-12 9:31:04编辑过]

--  作者:有点甜
--  发布时间:2015/1/9 18:02:00
--  

 跟代码无关。

 

 具体问题上传例子说明。


--  作者:120785713
--  发布时间:2015/1/10 9:31:00
--  

这个例子有点麻烦   在sql2000数据源中会报错   Access数据源中正常使用


--  作者:Bin
--  发布时间:2015/1/10 9:38:00
--  
你如何操作的时候出错,换SQL2005以上的版本看看


--  作者:120785713
--  发布时间:2015/1/10 18:15:00
--  

谢谢   我再试试


--  作者:czy
--  发布时间:2015/1/10 19:33:00
--  
sql下面的代码要改一下

Dim max As String = e.DataTable.SQLCompute("max(单号)", "日期 = \'" & e.DataRow("日期") & "\'")

--  作者:120785713
--  发布时间:2015/1/12 14:04:00
--  

谢谢  终于搞懂了