如何在MS Access中通过表单查询指定储物柜的租赁协议历史?
在MS Access中实现极简版储物柜租赁历史查询
完全可以实现,且能做到操作足够简单,适合经验不足的用户。以下是具体实现方案:
1. 先创建关联查询
- 新建选择查询,关联「储物柜」「租赁协议」「租户联系信息」三张表:
- 通过「储物柜编号」关联储物柜表与租赁协议表;
- 通过租赁协议表中的「租户ID」关联租户联系信息表;
- 选择需要展示的字段(比如租赁协议编号、租户姓名、租赁起止日期、租金等),保留「储物柜编号」作为筛选依据。
2. 设计极简输入界面
- 创建空白表单作为主操作界面:
- 添加文本框控件,命名为
txtLockerID,对应标签改为「输入储物柜编号」; - 可选:添加按钮控件(标题设为「查看历史」),或直接用自动刷新逻辑(更省心)。
- 添加文本框控件,命名为
3. 实现一键/自动显示历史
方案A:点击按钮查看(直观易懂)
- 右键按钮 → 「事件」→「点击」→ 选择「事件过程」,进入VBA编辑器输入代码:
Private Sub btnShowHistory_Click() If IsNull(Me.txtLockerID) Or Me.txtLockerID = "" Then MsgBox "请先输入储物柜编号!", vbExclamation Exit Sub End If ' 打开预先创建的历史显示表单,筛选对应编号记录 DoCmd.OpenForm "frmLockerHistory", , , "储物柜编号 = '" & Me.txtLockerID & "'" End Sub - 其中
frmLockerHistory是你基于第一步查询创建的表单,用来展示租赁历史记录(布局选表格型即可)。
方案B:输入后自动显示(更便捷)
- 在主表单中嵌入子表单,子表单数据源选择第一步创建的查询;
- 设置子表单的「链接主字段」为
txtLockerID,「链接子字段」为「储物柜编号」; - 给
txtLockerID的「更新后」事件添加代码:Private Sub txtLockerID_AfterUpdate() If Not IsNull(Me.txtLockerID) Then Me.subLockerHistory.Form.Requery End If End Sub - 用户输入储物柜编号后,子表单会自动加载对应租赁历史,无需额外操作。
4. 优化用户体验
- 给文本框添加输入提示(比如设置「占位符文本」为「请输入储物柜编号」);
- 给历史显示表单添加格式美化(比如交替行颜色、冻结表头),让记录更易读。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

