2014-12-22 5 views
0

Я относительно новичок в Access и VBA, но мне удалось получить некоторые базовые трюки VBA, работающие как в Access, так и в Excel. Теперь у меня есть проблема, с которой я не могу взломать. Я создаю базу данных для отслеживания обслуживания небольшого грузового флота. У меня есть большая часть таблиц и форм, которые мне необходимы для основного отслеживания и управления оборудованием и обслуживанием.Поле даты обновления 2010 года на основе другого поля

Одна из вещей, которую мы отслеживаем, называется PM, которая предназначена для профилактического обслуживания (смазочных работ и замены масла). Мы делаем это с календарными интервалами для прицепов и интервалов пробега для тракторов. Прямо сейчас, я пытаюсь заставить отслеживаемое календарное оборудование работать. У меня есть таблица под названием tblEquipmentMaster, в которой хранится вся спецификация для каждой части оборудования (make, model, year, VIN и т. Д.), А в этой таблице есть поле LastPMDate. Все записи об обслуживании идут в двух других таблицах: tblMaintenance, в котором записывается номер устройства, поставщик, дата счета и сумма счета и tblMaintenanceDetails, в котором записывается каждая позиция работы, выполненная на устройстве (например, замененный водяной насос, замена фары и т. Д.), ,

Таблица сведений о техническом обслуживании также содержит выпадающий список стандартных кодов обслуживания, позволяющий более легко искать некоторые элементы обслуживания позже. Одним из этих кодов является PM. У меня также есть несколько форм, построенных для взаимодействия с этими таблицами, включая форму ввода данных для добавления новых записей технического обслуживания.

То, что я пытаюсь выполнить, состоит в том, чтобы поле LastPMDate для любого номера устройства в tblEquipmentMaster автоматически обновлялось в соответствии с полем InvoiceDate в tblMaintenance в любое время, когда счет-фактура вводится для этого номера устройства, в котором есть позиция, содержащая код PM ,

Я попытался создать запрос на обновление для этого, но в дополнение к изменению поля LastPMDate, как я этого хочу, он также заканчивает изменение дат счета для всех предыдущих счетов-фактур PM до даты последнего счета-фактуры, который содержал ПМ. Нехорошо.

Так что, мой вопрос: будет ли запрос на обновление лучшим способом сделать это, или мне лучше с каким-то решением VBA? У меня есть кнопка добавления записи в форме ввода данных счета-фактуры, которую пользователи используют в качестве кнопки сохранения/очистки формы, когда была введена вся информация для счета-фактуры. Я думаю, что какой-то код VBA привязан к кнопке on_click этой кнопки, которая будет смотреть на добавленный счет-фактуру, определить, содержит ли он код обслуживания PM, а затем обновить поле LastPMDate для этого номера устройства с датой счета-фактуры из этого счета-фактуры. хороший способ сделать это, но я, честно говоря, не знаю, какие функции или методы мне нужно, чтобы это получилось.

Любые идеи или предложения, оцененные.

+0

Вы сомневаетесь, к сожалению, нелегко понять.Я бы предложил разбить его на минимальный пример проблемы, так как большая часть фоновой информации не нужна для ее воспроизведения. Вероятно, они путают больше, чем помогают. – Bowdzone

+0

Вы сказали: «tblMaintenance, которое записывает номер устройства», но вы не указали «номер единицы» в таблице «tblEquipmentMaster». Как связаны эти две таблицы? –

ответ

0

Очень сложно следить за тем, что вы описываете, даже если у меня есть опыт PM и AM (автономное обслуживание). Отсутствие отношений между тремя таблицами. Тем не менее, я предпочитаю решения VBA (возможно, потому, что я начал программировать, когда все должно было быть написано ...). С VBA вы можете точно контролировать свой рабочий процесс.

Если я правильно понял, 1-й стол - это tblMaintenance, в котором у вас есть данные счета. Затем вам нужно будет отсканировать tblMaintenanceDetails, чтобы найти список PM и отфильтровать tblEquipmentMaster с текущим значением PM, чтобы обновить LastPMDate с датой 1-й таблицы.

Удалось ли мне предложить вам решение проблемы?

Дайте мне знать.

Смежные вопросы