Office中国论坛/Access中国论坛

标题: 连续生成编号问题! [打印本页]

作者: whyqwz    时间: 2005-8-26 06:23
标题: 连续生成编号问题!
我有50张面值50元的电话卡,编号从365001到365050,如何能在窗体中输入开始编号365001,结束编号365050,面值50元,就实现在表中就自动的增加50个记录,编号从365001到365050,面值都是50元?

请指教!谢谢
作者: xlonger    时间: 2005-8-26 16:02
dao
作者: sweetduck    时间: 2005-8-26 17:18
使用记录集操作

设计三个文本输入框(格式为数值型):开始编号,结尾编号,面值

一个命令按钮:添加新记录

Private Sub 添加新记录_Click()



For i = Me.开始编号 To Me.结尾编号

Dim m As Object

Set m = CurrentDb.OpenRecordset("表1")

m.AddNew

m("编号") = i

m("面值") = Me.面值

m.Update

Next

m.Close

End Sub

[此贴子已经被作者于2005-8-26 9:19:32编辑过]


作者: CYH7201    时间: 2005-8-26 18:29
版主的方法太好了,先学习一下.再收藏
作者: whyqwz    时间: 2005-8-28 04:21
这个办法真是好!谢谢!如果不用VB的方法,还有其他的办法吗?再次请指教!谢谢!![em01]
作者: whyqwz    时间: 2005-9-4 05:28
最近我在拼命的学习VB,现在已开始有点懂了楼上的意思了!谢谢!VB真是好东西![em07]
作者: syyudi    时间: 2005-9-4 23:42
我用insert into 折腾半天还没搞好,用sweetduck 代码一下就搞定了,非常感谢。
作者: syyudi    时间: 2005-9-5 04:45
有个新问题,如果想检查一下原数据表中是否有这些编号(可能是有一部分),没有的号码就加上,有就不加,该怎么做?谢谢。
作者: sweetduck    时间: 2005-9-5 18:04
Private Sub 添加新记录_Click()    Dim a, b

    a = Me.开始编号

    b = Me.结尾编号    Dim m As Object

    Set m = CurrentDb.OpenRecordset("表1")    Do While a <= b        If DCount("编号", "表1", "编号 ='" & a & "'") > 0 Then            a = a + 1        Else            m.AddNew

            m("编号") = a

            m("面值") = Me.面值

            m.Update            a = a + 1

            

        End If

        

    Loop    m.CloseEnd Sub
作者: sweetduck    时间: 2005-9-5 18:06
以编号排序就可以按顺序显示了
作者: syyudi    时间: 2005-9-5 23:45
Private Sub 命令35_Click()

    Dim a

    Dim b

    a = Me.开始号码

    b = Me.结束号码    Dim m As Object

    Set m = CurrentDb.OpenRecordset("test")    Do While a <= b        If DCount("发票编号", "test", "发票编号= ('" & a & "')") > 0 Then            a = a + 1        Else            m.AddNew

            m("发票编号") = a

            m("开票人姓名") = Me.开票人姓名

            m.Update            a = a + 1

            

        End If

        

    Loop    m.CloseEnd Sub运行后提示If DCount("发票编号", "test", "发票编号= ('" & a & "')") > 0 Then  出错请问' "& a &" '是什么意思? 我的“发票编号”字段是数值类型我将此句改成If DCount("发票编号", "test", "发票编号= val('" & a & "')") > 0 Then 为何陷入死循环,不停的添加纪录,a已经大于 b还不停。
作者: syyudi    时间: 2005-9-6 00:09
问题好像出在第二次点击“开始号码”或者“结束号码”输入框后,自动循环开始。这两个文本框我没有设置事件。
作者: sgrshh29    时间: 2005-9-6 00:54
就用3楼的代码不是很好吗?只要加二句判断号码是否已经存在,决定添加与否。
作者: syyudi    时间: 2005-9-6 03:51
Private Sub 命令25_Click()

Dim m As Object

Dim aSet m = CurrentDb.OpenRecordset("test")

For i = Me.开始号码 To Me.结束号码



        If DCount("发票编号", "test", "发票编号= val('" & i & "')") > 0 Then

                    Else            m.AddNew

            m("发票编号") = i

            m("开票人姓名") = Me.开票人姓名

            m.Update            

            

        End IfNext

Me.Requerym.CloseEnd Sub用这个代码搞定,可是按理说11楼的代码也可以,就是执行起来不对。还是想知道' "& a &"  '是怎么回事?请各位老师指点。
作者: sweetduck    时间: 2005-9-7 22:09
因为a并没有具体定义为数值型,所以要用引号




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3