Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

自动添加记录

学员杨  发表于:2009-05-03 23:39:01  
复制

有一个表,编号这一字段中间有些空缺,例如:1、2、5、9、99等,缺少3、4、6等记录,我想制作一个命令,自动把这些记录填进去,其余的字段随便赋个值就行,无所谓。

 

Top
李李 发表于:2009-05-04 09:03:08

当添加记录时,ACCESS不再使用已被删除的自动编号型字段的数值,而是按递增的规律重现赋值!



学员杨 发表于:2009-05-04 15:31:03

我的编号字段其实是字符型的,其实我已经将该问题转化为如何向表中自动批量添加记录的问题。

程序代码如下:

Private Sub Command5_Click()
    Dim DM As String
    Dim maxno As String
    Dim tempno As String
    Dim test As String
    Dim i1 As Long
    Dim i2 As Long
    DM = DLookup("[编号]", "编号帐", "left([编号],(len([编号])-3))=FORM.[代码] ")
    maxno = DMax("[编号]", "编号帐", "left([编号],(len([编号])-3))=FORM.[代码] ")    '找到最后记录的编号
    i1 = Val(Right(DM, 3))
    i2 = Val(Right(maxno, 3))
    For j = i1 To i2
      tempno = Form.[代码] & Format(j, "000")
      test = Nz(DLookup("[编号]", "编号帐", "[编号]='" & tempno & "'"), 0)
      If test = "0" Then
        '我要在这里添加一条记录到表中,编号字段输入tempno,其余的随便办
      Else
      End If
    Next j
   
End Sub



学员杨 发表于:2009-05-04 15:35:39

解释一下上面的程序代码:我要在这个窗体上实现,窗体上有一个文本框和一个按钮,文本框名称就是[代码],上段代码是按钮的单击事件。

例如:文本框中输入k,按按钮就将自动补全从k001到Kxxx之间空缺的记录。



学员杨 发表于:2009-05-04 21:55:47

我想用runsql 中的INSERT INTO语句,可是一时看不到示例,谁能帮我一下?

用这个能实现我的构想吗?



学员杨 发表于:2009-05-04 23:01:07

呵呵呵!

成功了,修改后的代码全文如下:

Private Sub Command5_Click()
    Dim maxno As String
    Dim tempno As String
    Dim test As String
    Dim sql As String
    Dim i2 As Long
    DoCmd.Echo False, ""
    DoCmd.SetWarnings False
    maxno = Nz(DMax("[编号]", "编号帐", "left([编号],(len([编号])-3))=FORM.[代码] "), 0)   '找到最后记录的编号
    If maxno = "0" Then
     MsgBox "您输入的量具名在当前编号帐中不存在" & Chr(13) & Chr(10) & "请核实后再重新输入"
    Else
     i2 = Val(Right(maxno, 3))
     For j = 1 To i2
      tempno = Form.[代码] & Format(j, "000")
      test = Nz(DLookup("[编号]", "编号帐", "[编号]='" & tempno & "'"), 0)
      If test = "0" Then
        sql = "insert into 编号帐 (编号,量具名,规格,精度,生产厂,制造编号,备注) values ('" & _
          tempno & _
          "','管理','',0.000,'','','') "
        DoCmd.RunSQL sql

      Else
      End If
     Next j
    End If
    DoCmd.SetWarnings True
    DoCmd.Echo True, ""
End Sub

感谢回帖者。



总记录:5篇  页次:1/1 9 1 :