因为你没有给出表结构和窗体的具体要求,为了说明方便,做到示例一目了然:
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
我给你一个最简单实用的办法。再建立一个表。
表里建立一个字段,往字段里写数字,写了三个,按住下键,就自动填写下面的递加数据一直加到个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 序列号<=[生产数目];
你是不是要做这种事
1、可以使用sql语句。
2、可以手动慢慢一个个写入。
3、可以用代码一个循环插入。
数据录入本身就一条一条录入的没有别的捷径。
写个过程实现
例子:
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;
/