以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  高级自动编号示例帮助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4219)

--  作者:woodiy
--  发布时间:2009/9/5 9:22:00
--  高级自动编号示例帮助
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网络环境下的记录编号.rar


附件为狐爸爸的高级自动编号示例,我现在应该的SQL数据库,表名为定单主表,\'systemdata 为外部数据源
不知道还有错误吗?

If e.DataRow.IsNull("产品") Then
   Return
ElseIf e.DataRow.IsNull("编号") = False AndAlso e.DataRow("编号").StartsWith(e.DataRow("产品")) Then
   Return
End If
Dim cmd1 As New SQLCommand
Dim cmd2 As New SQLCommand
Dim cmd3 As New SQLCommand
Dim Key As Integer
Dim T1 As String
cmd1.Con nectionN ame = "systemdata"  \'systemdata 为外部数据源
cmd2.Con nectionN ame = "systemdata"  \'systemdata 为外部数据源
cmd3.Con nectionN ame = "systemdata"  \'systemdata 为外部数据源
cmd1.commandText = "Select [编号] From [定单主表] Where [产品] = \'"  & e.DataRow("产品")  & "\'"
Key = cmd1.ExecuteScalar()
T1 = Format(Date.today,"yyMM")
cmd2.commandText = "Update [编号] Set [编号] = " & (Key + 1)  & " Where [编号] = " & Key & " And [产品] = \'" &e.DataRow("产品") & "\'"
cmd3.commandText = "Select Count(*) From [定单主表] Where [产品] = \'"  & e.DataRow("产品")  & "\'"
If cmd3.ExecuteScalar = 0 Then
    cmd3.commandtext = "Insert Into 编号 (产品, 编号) Values(\'" & e.DataRow("产品") & "\',1)"
    cmd3.ExecuteNonQuery
End If
Do
    If cmd2.ExecuteNonQuery() > 0 Then
        Exit Do
    Else
        Key = cmd1.ExecuteScalar()
        cmd2.commandText = "Update [编号] Set [编号] = " & (Key + 1)  & " Where [编号] = " & Key & " And [产品] = \'" &e.DataRow("产品") & "\'"
    End If
Loop
e.DataRow("编号") = e.DataRow("产品") & "-" & T1 & Format(Key,"0000")
[此贴子已经被作者于2009-9-5 9:25:19编辑过]

--  作者:woodiy
--  发布时间:2009/9/5 9:58:00
--  现在出错的原因如下

图片点击可在新窗口打开查看此主题相关图片如下:qq截图未命名.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:qq截图未命名2.jpg
图片点击可在新窗口打开查看

我的数据类型都是字符型,为什么还有出错呢



--  作者:woodiy
--  发布时间:2009/9/5 9:58:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq截图未命名1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图未命名3.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2009/9/5 10:48:00
--  
用于编号的外部数据源,其编号列是数值型的,你的SQL语句中,关于编号的部分,有的用了单引号,等于作为字符了。

cmd2.commandText = "Update [编号] Set [编号] = " & (Key + 1)  & " Where [编号] = " & Key & " And [产品] = \'" &e.DataRow("产品") & "\'"

--  作者:woodiy
--  发布时间:2009/9/5 16:58:00
--  

学习了,谢谢!