Вот моя таблица (в моей форме) в MS Access 2016.
Я хочу иметь код в VBA, который:
1.) Сканирует все поля «Tag_Value»
2.) Во время сканирования, ЕСЛИ найденные мной значения найдены, ТО затем вставьте «текстовую строку» (например, «Сторожевой таймер») в поле «ErrorDescription» в той же строке, в которой найдено соответствующее значение
Кажется простым, верно? Я надеюсь, что это ... Это просто торт с использованием Excel, но мне нужно, чтобы таблица, используемая моей формой, была связана с сервером MySQL (для постоянных обновлений), а не с Excel.
Мне удалось заставить его записывать в самую первую строку с помощью операторов IF (_OnLoad и _Click [кнопки фильтра]), но партия останавливается на этом.
Любая помощь будет принята с благодарностью. Заранее спасибо за ваше время!
Понял!
См. Код ниже:
Dim d As Database
Dim r As Recordset
Dim Tag_Value As Field, ErrorDescription As Field
Set d = CurrentDb()
Set r = d.OpenRecordset("alarmlogwithdescs")
Set Tag_Value = r.Fields("Tag_Value")
Set ErrorDescription = r.Fields("ErrorDescription")
r.LockEdits = True
r.MoveFirst
While Not r.EOF
If [Tag_Value] = 7194 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "Watchdog Timer"
r.Update
End If
If [Tag_Value] = 3483 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "Controller Fault1"
r.Update
End If
If [Tag_Value] = 6816 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "Controller Fault2"
r.Update
End If
If [Tag_Value] = 3105 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "Controller Fault3"
r.Update
End If
If [Tag_Value] = 6438 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "HMI Fault2"
r.Update
End If
If [Tag_Value] = 2727 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "HMI Fault2"
r.Update
End If
If [Tag_Value] = 6060 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "HMI Fault3"
r.Update
End If
If [Tag_Value] = 2349 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "Motor Overheating"
r.Update
End If
If [Tag_Value] = 5682 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "Motor Failed to Start"
r.Update
End If
If [Tag_Value] = 1971 & IsNull([ErrorDescription]) Then
r.Edit
ErrorDescription = "Motor Failed to Stop"
r.Update
End If
r.MoveNext
Wend
r.Close