我对Access和VBA相对较新,但我设法在Access和Excel中使用了一些基本的VBA技巧。现在我遇到了一个我似乎无法破解的挑战。我正在建立一个数据库来跟踪小型卡车运输车队的维护。我已经获得了大部分表格和表格,我需要对设备和维护进行基本的跟踪和管理。
我们追踪的其中一项称为PM,它代表预防性维护(润滑油作业和换油)。我们按日历间隔为拖车和拖拉机的里程间隔进行。现在,我试图让日历跟踪设备正常工作。我有一个名为tblEquipmentMaster的表,它保存了每个设备的所有细节(make,model,year,VIN等),并且该表有一个名为LastPMDate的字段。所有维护记录都放在另外两个表格中,tblMaintenance记录单位编号,供应商,发票日期和发票金额以及tblMaintenanceDetails,记录在单元上执行的每个工作项目(即更换的水泵,更换的大灯等)
维护详细信息表还包含标准维护代码的下拉列表,以便以后更轻松地搜索某些维护项目。其中一个代码是PM。我还有几个与这些表交互的表单,包括用于添加新维护记录的数据输入表单。
我想要完成的是让tblEquipmentMaster中任何单位编号的LastPMDate字段自动更新以匹配tblMaintenance中的InvoiceDate字段,只要为该单位编号输入发票,该单位编号包含包含代码的行项目PM。
我已经尝试构建更新查询来执行此操作,但除了更改LastPMDate字段之外,它还会将所有以前的PM发票的发票日期更改为最后一张发票的日期其中包含PM。不好。
所以我的问题是,更新查询是最好的方法吗?或者我会更好地使用某种VBA解决方案?我的维护发票数据输入表单上有一个添加记录按钮,用户在输入发票的所有信息时将其用作保存记录/清除表单按钮。我认为一些VBA代码与该按钮的on_click相关联,该按钮将查看您刚刚添加的发票,确定它是否包含PM维护代码,然后更新该单位编号的LastPMDate字段以及该发票中的发票日期这是一个很好的方法,但我真的不知道我需要什么功能或方法才能让它工作。
任何见解或建议表示赞赏。
答案 0 :(得分:0)
即使我有PM和AM(自主维护)经验,也很难跟踪你所描述的内容。 缺少的是三张桌子之间的关系。 不过我更喜欢VBA解决方案(也许是因为我开始编程时必须编写所有内容......)。使用VBA,您可以精确控制工作流程。
如果我理解的话,第一张表是tblMaintenance,您可以在其中获得发票数据。 然后你应该扫描tblMaintenanceDetails以找到PM列表并使用当前PM值过滤tblEquipmentMaster以使用第一个表的日期更新LastPMDate。
我是否成功地为您提供解决问题的想法?
让我知道。