设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1736|回复: 4
打印 上一主题 下一主题

[模块/函数] 能否改进一下效果

[复制链接]
跳转到指定楼层
1#
发表于 2011-7-18 12:09:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是这么个情况,想批量输入,但是一次只能一条,输入多少个就要点多少次,能否办到点一次就行了啊,谢谢
public Sub Command86_Click()
On Error GoTo Err_Command86_Click
b = MsgBox("是否使用面积公式", vbYesNo)
If b = vbYes Then
Me.Lable26 = Me.Lable12 * Me.Lable11 / 1000
End If
Dim stemp As String
a = InputBox("输入录入数量")
For i = 0 To a - 1
stemp = "INSERT INTO form5查询(Lable1,Lable21,Lable22,Lable3,Lable18,Lable5,Lable14,Lable2,Lable6,Lable12,Lable11,Lable26,Lable20,Lable23,Lable15,Lable13,Lable27)VALUES('" & Me.Lable1 & "','" & Me.Lable21 & "','" & Me.Lable22 & "','" & Me.Lable3 & "','" & Me.Lable18 & "','" & Me.Lable5 & "','" & Me.Lable14 & "','" & Me.Lable2 & "','" & Me.Lable6 & "','" & Me.Lable12 & "','" & Me.Lable11 & "','" & Me.Lable26 & "','" & Me.Lable20 & "','" & Me.Lable23 & "','" & Me.Lable15 & "','" & Me.Lable13 & "'," & i & ")"
DoCmd.RunSQL stemp
Me.Lable3 = Mid(Me.Lable3, 1, 10) & Format(Right(Me.Lable3, 4) + 1, "0000")
Next i

Exit_Command86_Click:
    Exit Sub

Err_Command86_Click:
    MsgBox Err.Description
    Resume Exit_Command86_Click
   
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-7-18 15:07:53 | 只看该作者
本帖最后由 roych 于 2011-7-18 15:17 编辑

把RunSQL部分嵌入If语句里就好了。
If  MsgBox("是否使用面积公式", vbYesNo)=vbYes then
a=……
For i=0 to a-1
……
Next
else
exit sub
end if
用ADO方法代码会更加简洁,可读性更强(如果文本框和字段值一一对应,并追加全部字段的话,还可以嵌套For循环):
Dim rst as New ADODB.Recordset
rst.open"Form5查询",Currentproject.Connection,adOpenKeyset, adLockOptimistic
If  MsgBox("是否使用面积公式", vbYesNo)=vbYes then
a=……
For i=0 to a-1
rst.AddNew
rst("label1")=me.label1.value
……………………………………
rst.Update
Next
else
exit sub
end if
rst.close
3#
 楼主| 发表于 2011-7-19 08:57:32 | 只看该作者
呵呵谢谢斑竹ADO方法不太会用,在什么地方学习,有好的推荐吗
4#
发表于 2011-7-19 10:58:25 | 只看该作者
论坛里有相关教程。搜索下。这里是一段简单的追加查询代码,供参考学习:
Private Sub CmdAddNew_Click()
'新建记录集
Dim rst As New ADODB.Recordset
'打开记录集(可以是表名、查询名或者SQL查询语句)
rst.Open "测试表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If IsNull(Me.TxtName) Then Exit Sub
If MsgBox("您打算新增记录么?", vbOKCancel, "提示") = vbOK Then
    For i = 1 To InputBox("请输入需要输入的数量", "输入前提示", 1)
    '新增记录
        rst.AddNew
    '设置第二个字段(即姓名)值为文本框的值。
        rst(1) = Me.TxtName
    '更新记录集。如果是更新查询语句的话,应加上rst.MoveNext以便移到下一条记录。
        rst.Update
    Next i
End If
End Sub
5#
 楼主| 发表于 2011-7-19 16:00:32 | 只看该作者
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-29 20:27 , Processed in 0.394987 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表