Access数据中,如何做到在其中的一个字段中输入数据,其他的字段字段根据条件自动生成
在一个Access数据库中,我想实现在【姓名字段】内输入数据后,[班级字段]和[数学老师字段]内我想同时实现(下面以[班级字段]为例,[数学老师字段]完全相同):当在同一...
在一个Access数据库中,我想实现在【姓名字段 】内输入数据后,[班级字段]和[数学老师字段]内我想同时实现(下面以[班级字段]为例, [数学老师字段]完全相同):
当在同一行的 【 姓名字段】 中输入数据后,如果该字段[班级字段内]还没有数据,请默认等于上一行数据。如果该字段内[班级字段]里面有了数据,保持原有不变。
以上代码以及有高手帮做出。具体代码如下:
Private Sub 姓名_AfterUpdate()
Dim I As Long
With Me
I = .ID.Value - 1
If IsNull(.班级.Value) Then .班级.Value = DLookup("班级", "表1", "ID=" & I)
If IsNull(.数学老师.Value) Then .数学老师.Value = DLookup("数学老师", "表1", "ID=" & I)
End With
End sub
该代码非常好,但我的实际数据库表格还要增加两功能
一个是纪录考试时间,【考试时间字段】。我的要求是在 【姓名字段 】 内输入数据后,如果下一行 【 班级字段】 的名称和上一行班级的名称相同(相邻的上下行),就默认等于上一行的时间。如果下一行班级的名称不等于上面一行,就等于系统时间,也就是新时间。
另外一个是【班级编码】,这个编码也是 随着【班级字段】内相邻班级名称的变化依次往上 加1 。 当然该编码也是在【姓名字段】内输入数据后自动生成。 展开
当在同一行的 【 姓名字段】 中输入数据后,如果该字段[班级字段内]还没有数据,请默认等于上一行数据。如果该字段内[班级字段]里面有了数据,保持原有不变。
以上代码以及有高手帮做出。具体代码如下:
Private Sub 姓名_AfterUpdate()
Dim I As Long
With Me
I = .ID.Value - 1
If IsNull(.班级.Value) Then .班级.Value = DLookup("班级", "表1", "ID=" & I)
If IsNull(.数学老师.Value) Then .数学老师.Value = DLookup("数学老师", "表1", "ID=" & I)
End With
End sub
该代码非常好,但我的实际数据库表格还要增加两功能
一个是纪录考试时间,【考试时间字段】。我的要求是在 【姓名字段 】 内输入数据后,如果下一行 【 班级字段】 的名称和上一行班级的名称相同(相邻的上下行),就默认等于上一行的时间。如果下一行班级的名称不等于上面一行,就等于系统时间,也就是新时间。
另外一个是【班级编码】,这个编码也是 随着【班级字段】内相邻班级名称的变化依次往上 加1 。 当然该编码也是在【姓名字段】内输入数据后自动生成。 展开
1个回答
展开全部
private sub 姓名_afterupdate()
dim I as long
with me
I = .ID.value - 1
if isnull(.班级.value) then .班级.value=dlookup("班级","表1","ID=" & I )
if isnull(.数学老师.value) then .数学老师.value=dlookup("数学老师","表1","ID=" & I )
if isnull(.教导员.value) then .教导员.value=dlookup("教导员","表1","ID=" & I )
if .班级.value=dlookup("班级","表1","ID=" & I ) then
.考试时间.value = dlookup("考试时间","表1","ID=" & I )
.班级编码.value = dlookup("班级编码","表1","ID=" & I )
else
.考试时间.value = now()
.班级编码.value = dlookup("班级编码","表1","ID=" & I ) + 1
end if
end with
end sub
dim I as long
with me
I = .ID.value - 1
if isnull(.班级.value) then .班级.value=dlookup("班级","表1","ID=" & I )
if isnull(.数学老师.value) then .数学老师.value=dlookup("数学老师","表1","ID=" & I )
if isnull(.教导员.value) then .教导员.value=dlookup("教导员","表1","ID=" & I )
if .班级.value=dlookup("班级","表1","ID=" & I ) then
.考试时间.value = dlookup("考试时间","表1","ID=" & I )
.班级编码.value = dlookup("班级编码","表1","ID=" & I )
else
.考试时间.value = now()
.班级编码.value = dlookup("班级编码","表1","ID=" & I ) + 1
end if
end with
end sub
更多追问追答
追问
代码非常好,还有一点小问题想请您 再完善一下。具体如下,在 【 姓名字段】内输入数据时,如果【考试时间字段】如果那一行已经有时间在里面了,请保持原有时间不变。 其他的都按上面的代码。
追答
private sub 姓名_afterupdate()
dim I as long
with me
I = .ID.value - 1
if isnull(.班级.value) then .班级.value=dlookup("班级","表1","ID=" & I )
if isnull(.数学老师.value) then .数学老师.value=dlookup("数学老师","表1","ID=" & I )
if isnull(.教导员.value) then .教导员.value=dlookup("教导员","表1","ID=" & I )
if .班级.value=dlookup("班级","表1","ID=" & I ) then
if isnull(.考试时间.value) then .考试时间.value = dlookup("考试时间","表1","ID=" & I )
.班级编码.value = dlookup("班级编码","表1","ID=" & I )
else
if isnull(.考试时间.value) then .考试时间.value = now()
.班级编码.value = dlookup("班级编码","表1","ID=" & I ) + 1
end if
end with
end sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询