以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于网络自动编号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2563)

--  作者:狐哥
--  发布时间:2009/4/22 12:55:00
--  [求助]关于网络自动编号
重新上传:


我按狐爸的例子做了一个,但为何死机呢.
因不懂SQL,不知哪错了.
各位帮看看.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:bianhao.rar

[此贴子已经被作者于2009-4-22 13:18:36编辑过]

--  作者:狐哥
--  发布时间:2009/4/22 12:58:00
--  
是不是日期格式错了,我查一下.

改了还是不行呢?
If e.DataRow.IsNull("日期") Then
   Return
ElseIf e.DataRow.IsNull("编号") = False Then
   Return
End If
Dim cmd1 As New SQLCommand
Dim cmd2 As New SQLCommand
Dim cmd3 As New SQLCommand
Dim Key As Integer
cmd1.C
cmd2.C
cmd3.C
cmd1.commandText = "Select [编号] From [编号] Where [日期] = #" & e.DataRow("日期") & "#"
Key = cmd1.ExecuteScalar()
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("编号") = "a" & "-" & Format(Key,"0000")
[此贴子已经被作者于2009-4-22 13:03:20编辑过]

--  作者:狐哥
--  发布时间:2009/4/22 14:46:00
--  
哪位老师帮我看看呢,是哪错了.为什么不执行代码呢?
--  作者:狐狸爸爸
--  发布时间:2009/4/22 15:37:00
--  
我那个编号不是这么简单的,有外部数据源,编号不是来自于本表,二是来自于外部表,SQL命令操作的也不是本表,而是外部表。
--  作者:狐哥
--  发布时间:2009/4/22 16:25:00
--  
狐爸请看一楼文件,我有外部数具源啦,编号是来自外部表的呀.SQL命令也是操作外部表的
--  作者:狐狸爸爸
--  发布时间:2009/4/22 16:28:00
--  
我晕了,你以为目录下有个mdb文件,就是使用了外部数据源吗?
我打开你的文件,你根本就没有定义任何外部数据源的。
--  作者:狐哥
--  发布时间:2009/4/22 16:34:00
--  
是呀,我目录下的 编号 文件就是用:Microsoft Office Access 做的一个呀.不是跨表统计这个TABLE生成的.

且我定义了外部数具源的呀:
If e.name = "编号" Then
    e.C & e.ProjectPath & "编号.mdb;Persist Security Info=False"
End if
[此贴子已经被作者于2009-4-22 16:36:57编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/4/22 16:41:00
--  
你得先定义一个名为“编号"的数据源,否则这个代码无效。
--  作者:狐哥
--  发布时间:2009/4/22 16:47:00
--  
狐爸别着急:
如下是你文件列表:

图片点击可在新窗口打开查看此主题相关图片如下:片段_5.jpg
图片点击可在新窗口打开查看
如下是我文件列表:


图片点击可在新窗口打开查看此主题相关图片如下:片段_6.jpg
图片点击可在新窗口打开查看

都有ACCESS这个文件名:编号
这个文件不属于数具源吗,
你别急,我真的不懂!
[此贴子已经被作者于2009-4-22 16:47:07编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/4/22 16:50:00
--  
老兄先看一下这部分的帮助:

图片点击可在新窗口打开查看此主题相关图片如下:1213.gif
图片点击可在新窗口打开查看

不要只看开发的部分,应用的部分也是应该看的。