access窗体如何一次录入多条数据

是这样,我现在有个需求是多条数据只有一个字段的最后几位不同,而且他们是连续的,有没有办法设置成填写一条,然后写上连续数值的起止数字,实现一次录入多条记录?... 是这样,我现在有个需求是多条数据只有一个字段的最后几位不同,而且他们是连续的,有没有办法设置成填写一条,然后写上连续数值的起止数字,实现一次录入多条记录? 展开
 我来答
敏锐还宁静丶行家0
2013-02-25 · TA获得超过6870个赞
知道大有可为答主
回答量:3502
采纳率:0%
帮助的人:1770万
展开全部

因为你没有给出表结构和窗体的具体要求,为了说明方便,做到示例一目了然:

1、表名称包括“测试表”,“作者”和“证书编码”两个字段。结构图如下:

2、窗体包括四个未绑定文本框(名称与对应标签同)和一个名为“保存数据”的按钮。如下图:

3、上图中录入显示的数据,然后点击“保存数据”按钮。“测试表”的数据变化如下:

4、窗体中“保存数据”按钮的【单击事件】代码为:

Private Sub 保存数据_Click()
On Error GoTo MyErr
' 定义变量并赋值
Dim i, m, n, k As Integer
Dim zsid As String
m = Val(Me.开始码)
n = Val(Me.结束码)
k = Len(Me.开始码)
' 检查数据录入是否正确
If IsNull(Me.作者) Or IsNull(Me.通用码) Or IsNull(Me.开始码) Or IsNull(Me.结束码) Then
    MsgBox "数据未保存!请把信息填写完整后重试...", 64 + 0 + 4096, "波涛工作室"
    Exit Sub
ElseIf k <> Len(Me.结束码) Then
    MsgBox "开始码与结束码位数不一致!请重新输入...", 64 + 0 + 4096, "波涛工作室"
    Exit Sub
ElseIf m > n Then
    MsgBox "开始码不能大于结束码!请重新输入...", 64 + 0 + 4096, "波涛工作室"
    Exit Sub
End If
' 开始保存数据
For i = m To n
    ' 计算并格式化证书编码
    zsid = Me.通用码 & Right(Left(Me.开始码, k - Len(m)) & i, k)
    ' 用INSERT语句写入数据
    CurrentDb.Execute "INSERT INTO 测试表 VALUES ('" & Me.作者 & "', '" & zsid & "')"
Next i
Exit Sub
' 发生未知错误后的处理
MyErr:
    MsgBox "错误类型:" & Err.Description, 64 + 0 + 4096, "波涛工作室"
End Sub

创作者zUzVB1Sl31
2013-02-25 · 编程类资料、英语学习资料
创作者zUzVB1Sl31
采纳数:1331 获赞数:5975

向TA提问 私信TA
展开全部
我给你一个最简单实用的办法。再建立一个表。
表里建立一个字段,往字段里写数字,写了三个,按住下键,就自动填写下面的递加数据一直加到个2000。保存起来。名称为序列号表。
建立一个查询:
Select *, [连续值+序列号] as 新字段 from 原始表,序列号表 where 序列号>=[起始数据] and 序列号<=[结束数据];
你再看一下是不是你要查询所得的结果。一定要把他录到表里去,就把这个查询更新插入到表中,一样的效果。
我就估计你是在生成序列号,没必要这么折腾的。就照我的办法,加一个数目字段,自动生成查询就号了,不需要去填写。如:
产品ID | 产品特征 | 生产数目
===============================
A01502 | 新品新款式 | 20
-----------------------------------------------
S02521 | 旧B205款 | 5
--------------------------------------------------
.............
我要产品序列号,要他加一列变成:
产品ID | 产品特征 | 生产数目 | 产品序列号
=============================================
A01502 | 新品新款式 | 20 | A0150201
-----------------------------------------------------------------------
A01502 | 新品新款式 | 20 | A0150202
-----------------------------------------------------------------------
A01502 | 新品新款式 | 20 | A0150203
-----------------------------------------------------------------------
。。。。。
------------------------------------------------------------------------
S02521 | 旧B205款 | 5 | S0252101
------------------------------------------------------------------------
。。。。。
看到没,可以直接用查询搞定,编写一个序列号表,直接查询去并列排序就完成了。
Select *, [产品ID+序列号] as 产品序列号 from 原始表,序列号表 where 序列号<=[生产数目];
你是不是要做这种事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
glslian14cce7
2013-02-25 · TA获得超过1541个赞
知道小有建树答主
回答量:1389
采纳率:81%
帮助的人:562万
展开全部
1、可以使用sql语句。
2、可以手动慢慢一个个写入。
3、可以用代码一个循环插入。
数据录入本身就一条一条录入的没有别的捷径。
追问
求循环录入的代码
追答
循环的话 看你的 需要用什么语音 每个语音都不一样,还有导入的方式。
比如你放在txt文本里面,而且用相应的格式。在用循环导入。
这个也不知道你用什么格式支持什么语言,不太方便写、、、你如果有兴趣可以百度相关的导入有很多 而且有源码~
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jippo08456
2013-02-25 · TA获得超过2630个赞
知道小有建树答主
回答量:915
采纳率:0%
帮助的人:633万
展开全部
写个过程实现
例子:
CREATE OR REPLACE PROCEDURE TEST
AS
v_count NUMBER (4);
BEGIN
--v_count是变化的值
FOR v_count IN 1 .. 100
LOOP
IF MOD (v_count, 2) = 0
THEN
INSERT INTO test
(count
)
VALUES ("固定的值"+v_count
);
END IF;
END LOOP;

EXCEPTION
WHEN OTHERS
THEN
NULL;
END TEST;
/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式