【发布时间】:2016-12-28 22:17:44
【问题描述】:
我有一个带有学生表的 Access 数据库。表中的前三个字段是 studentID、ForeName 和 LastName。
该表已包含大约 35 条学生记录。学生证的格式为 AA0000。前两个字符由姓氏和名字的第一个字母组成。 0000 是一个 4 位数字。
我创建了一个表格,用于将数据输入到学生表中。我希望根据以下规则自动生成学生证
- 前两个字符分别是姓氏和名字的第一个字母
- 4 位数字比已使用的最大 4 位数字大 1
所以比如我表中只有学生证的AA1256、BC1267和OK1288,那么我添加的下一条记录的编号应该是1289。
是否可以仅通过更改我创建的表单上的 sutdentID 文本框的控制源来实现。
我已经尝试将以下代码放在 studentID 的控制源中(虽然不起作用) =Left(LastName,1) & left(forename,1) & (max(right(studentID,4))+1)
感谢任何帮助。 谢谢
【问题讨论】:
-
我认为这种尝试很接近,但仅指当前记录中的 studentID - 您需要一种方法来获取完整表中的最大 studentID。一种简单的方法可能是准备一个查询以自行获取该值,然后在您的表单中使用该新查询。
-
实际上这就是我刚刚尝试过的,但即使这样也会给我一个错误。
-
什么中断?新查询是否返回正确的结果?如果是这样,您可以发布使用它的新代码吗?如果没有,那么您需要首先对该查询进行故障排除。
-
实际上这就是我刚刚尝试过的,但即使这样也给了我一个错误。我有一个查询给我 maxNum+1 我尝试放入控制源的内容现在类似于 Left(LastName,1) & left(forename,1) & CurMaxNum!Expr1 但这给了我一个 #Name 错误: (
-
查询中的代码是SELECT Max(Right([StudentID],4))+1 AS Expr1 FROM Student;
标签: ms-access