|
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”,希望即时看到输入的数据。
我用的父子窗体,父窗体用来输入记录,而子窗体用来显示记录。
但是,现在输入后不能够即时显示,一定要退出窗体重新打开,才能在子窗体里看到刚才输入的记录。
这个又是为什么呀?? |
|