Office中国论坛/Access中国论坛

标题: 求助: 如何一次性录入多条记录 [打印本页]

作者: ferockpan    时间: 2012-6-20 09:05
标题: 求助: 如何一次性录入多条记录
本帖最后由 ferockpan 于 2012-6-20 09:17 编辑

[attach]49425[/attach]



工作中遇到一种情况: 每件材料都要单独录入数据库,相同的材料相同的不良情况还要重复录入。能否只录入一条记录,按“添加记录”时,自动按实际情况添加N条记录?
例子:


在窗体中添加记录[attach]49426[/attach]
在序列号中记录不良品的序列号



想要生成的效果:

3条记录,序列号分别是6,7,8

作者: Henry D. Sy    时间: 2012-6-20 10:14
  1. Private Sub Command5_Click()
  2.     Dim intS As Integer
  3.     Dim intE As Integer
  4.     Dim i As Integer
  5.     Dim strSQL As String
  6.     If Not IsNull(Me.序列号) Then
  7.         intS = Left(Me.序列号, 1)
  8.         intE = Right(Me.序列号, 1)
  9.     Else
  10.         Exit Sub
  11.     End If
  12.     For i = intS To intE
  13.         strSQL = "INSERT INTO 总表2 (材料编号,材料名称,不良原因,处理方式,不良品数量,序列号 )values('" & _
  14.                  Me.材料编号 & "','" & Me.材料名称 & "','" & Me.不良原因 & "','" & Me.处理方式 & "'," & _
  15.                  Me.不良品数量 & "," & i & ")"
  16.         CurrentDb.Execute strSQL
  17.     Next
  18. End Sub
复制代码
[attach]49427[/attach]
作者: Henry D. Sy    时间: 2012-6-20 10:43
完善一下:
  1. Private Sub Command5_Click()
  2.     Dim intS As Integer
  3.     Dim intE As Integer
  4.     Dim i As Integer, p As Integer
  5.     Dim bln As Boolean
  6.     Dim strSQL As String
  7.     If Not IsNull(Me.序列号) Then
  8.         p = InStr(Me.序列号, "-")
  9.         If p > 0 Then
  10.             bln = True
  11.             intS = Left(Me.序列号, p - 1)
  12.             intE = Right(Me.序列号, Len(Me.序列号) - p)
  13.         Else
  14.             bln = False
  15.         End If
  16.     Else
  17.         Exit Sub
  18.     End If
  19.     If bln Then
  20.         For i = intS To intE
  21.             strSQL = "INSERT INTO 总表2 (材料编号,材料名称,不良原因,处理方式,不良品数量,序列号 )values('" & _
  22.                      Me.材料编号 & "','" & Me.材料名称 & "','" & Me.不良原因 & "','" & Me.处理方式 & "'," & _
  23.                      Me.不良品数量 & "," & i & ")"
  24.             CurrentDb.Execute strSQL
  25.         Next
  26.     Else
  27.         strSQL = "INSERT INTO 总表2 (材料编号,材料名称,不良原因,处理方式,不良品数量,序列号 )values('" & _
  28.                  Me.材料编号 & "','" & Me.材料名称 & "','" & Me.不良原因 & "','" & Me.处理方式 & "'," & _
  29.                  Me.不良品数量 & "," & Me.序列号 & ")"
  30.         CurrentDb.Execute strSQL
  31.     End If
  32. End Sub
复制代码

作者: ferockpan    时间: 2012-6-20 14:37
Henry D. Sy 发表于 2012-6-20 10:43
完善一下:

非常感谢!先试试.....
作者: ferockpan    时间: 2012-6-21 10:44
Henry D. Sy 发表于 2012-6-20 10:43
完善一下:

Henry D. Sy ,

您好,我把代码加到“添加记录”按钮,试了一下。结果它把原来的序列号为“6-8”的记录都添加上去了,实际上我是不想要这条记录的。如何可以不添加这条记录?谢谢!
作者: Henry D. Sy    时间: 2012-6-21 14:02
ferockpan 发表于 2012-6-21 10:44
Henry D. Sy ,

您好,我把代码加到“添加记录”按钮,试了一下。结果它把原来的序列号为“6-8”的记录 ...

结果它把原来的序列号为“6-8”的记录都添加上去了---不会吧!!

作者: ferockpan    时间: 2012-7-2 20:47
Henry D. Sy ,

您好,我把代码移植到实际使用的数据库,但运行时总出错,查来查去都不知道哪里出错,麻烦帮忙看看,如附件。非常感谢!
[attach]49555[/attach]


作者: Henry D. Sy    时间: 2012-7-3 09:36
要追加的字段数目,与追加值的数目不符!
你少写了或者多写了。
作者: Henry D. Sy    时间: 2012-7-3 09:39
字段是14个,值却是15个




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