我目前正在努力改进我从我的前任工作中继承的VBA数据库。
我有一个表格,它现在只是一个大格式, 包含32个单独的文本框, 每一个后面都有相同的代码, 但每个文本框重复同样的代码, 每一个文本框的引用都在变化。
Private Sub Cand_No2_AfterUpdate()
Cand_Name2 = DLookup("[Name]", "[qryExamAbsences]", "[Cand_No] = Cand_No2")
End Sub
一旦按下按钮
If Not IsNull([Cand_Name1]) Then
Rope = Rope & " Or Cand_No = " & [Cand_No1]
End If
(如果语句包含在按键鼠标下载事件中 。)
每个文本框的正确性为每个文本框, 然后过滤打印供办公室使用的报告。 这个问题有许多问题, 但我要解决的主要问题是,条目数量有上限, 如果我需要过滤超过32个, 我需要删除文本, 并重新开始原样 。
是否有办法将所有这些合并成一个代码的单部分,以便在需要时创建文本框?
编辑。
我找到了一种办法给用户一种印象,即文本框是在每个条目从用户角度改进了表格之后创建的(不再有32个文本框或必须滚动到打印按钮。 )然而,这仍然没有解决混乱代码的问题,因为我不得不为每个框重复额外的代码,它也留给我最多32个条目。
新法典如下:
If Not IsNull(Cand_Name1.value) Then
Cand_No2.Visible = True
Cand_Name2.Visible = True
cmdPrint.Top = 2500
cmdPrint.Left = 2500
DoCmd.MoveSize 1440, 2201, , 4000
Else
Cand_No2.Visible = False
Cand_Name2.Visible = False
cmdPrint.Top = 2000
DoCmd.MoveSize 1440, 2201, , 3500
End If
基本上让下一个文本框可见, 并下移打印按钮为新文本框留出空间。 它还会扩展窗口 。