Office中国论坛/Access中国论坛

标题: ACCESS 自动多插入一条记录 [打印本页]

作者: yjsksjscn    时间: 2008-3-29 15:31
标题: ACCESS 自动多插入一条记录
Dim strWhere As String
Dim a As Integer
Dim n As Integer
Dim i As Integer
   a = DMax("[序号]", "数据记录", "")
   n = Me.[枚数]
DoCmd.SetWarnings False
For i = a + 1 To a + n
    strWhere = "insert into 数据记录 (序号,指示书号,接单日期,交货日期,客户名,类别) values ( '" & i & "',指示书号,接单日期,交货日期,客户名,类别)"
    DoCmd.RunSQL strWhere
Next
DoCmd.SetWarnings True
Me.Requery

上面的代码是用来向表插入记录用的。
“序号”是自动累加的。
因为一个“指示书号”可能会对应几个“工件名”,为了方便输入,所以希望能够根据“Me.[枚数]”框中输入的数量自动插入几条相同内容的记录。 这个功能用上面的代码已经能够实现了。但是奇怪的是,每次插入了指定数量的记录后,还会多插入一条记录。
多插入的那条记录,前面的“序号”是“0”。调查了下,发现表中,“序号”的格式我设置的是“数字”,默认值是“0”。
当我将“序号”的格式设置为“文本”,还是会多插入一条记录,“序号”变成了空白。
这究竟是为什么呀?请高手指点迷津。万分感谢!!!
哦,另外,在代码结束部分,我用了“Me.Requery”,希望即时看到输入的数据。
我用的父子窗体,父窗体用来输入记录,而子窗体用来显示记录。
但是,现在输入后不能够即时显示,一定要退出窗体重新打开,才能在子窗体里看到刚才输入的记录。
这个又是为什么呀??
作者: OJX_01    时间: 2008-3-29 18:00
用me.refresh 或
me.子窗体.setfocus
me.requery
试试
作者: yjsksjscn    时间: 2008-3-29 21:01
谢谢二楼的提醒,刷新的问题已经得到解决.

可是关于多一条记录的问题,可以给个改进的建议吗?
作者: Grant    时间: 2008-3-29 22:16
默认值为空试试
作者: yjsksjscn    时间: 2008-3-30 18:53
试验了,结果不行。有没有其他的方法啊?
作者: yjsksjscn    时间: 2008-4-6 17:23
呼叫高手!
呼叫高手!
作者: yjsksjscn    时间: 2008-4-7 13:13
附件中是我的文件,请各为老大看看,能否将多出来的一行解决掉.
作者: yjsksjscn    时间: 2008-4-8 14:33
问题已经解决!谢谢提供帮助的各位.




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