2015-02-27 10 views
0

У меня есть форму, содержащее поле "DateProduced". Связанная с ним таблица называется «Отчет».Обновить другую таблицу, когда поле было изменено

Я пытаюсь добавить после события обновления в это поле и хочу, чтобы это событие обновляло поле «DateProduced» в таблице Quantity, если идентификатор совпадает для обоих.

Me! [Text0] отображает ID из поля Report

Me! [Text4] отображает DateProduced из отчета поля.

Код события выглядит следующим образом.

Private Sub Text4_AfterUpdate() 
Dim strSQL As String 

strSQL = "UPDATE Quantity " _ 
& "SET [DateProduced] = (#" & Me![Text4] & "#) " _ 
& "WHERE ID = (" & Me![Text0] & ")" 

DoCmd.RunSQL strSQL 
End Sub 

Но я не могу добиться успеха.

+0

Это похоже на http://stackoverflow.com/questions/28747227/update-linked-fields-in-access. Кроме того, вы не указали никаких сообщений об ошибках или вашей версии MS Access. – Fionnuala

+0

Я использую Access 2003, и это не дает мне никаких сообщений об ошибках и не обновляет таблицу –

+0

В этом случае, шаг за шагом, напечатайте strSQL в ближайшее окно и протестируйте его в дизайне запроса. Я подозреваю, что проблема здесь: '& 'WHERE ID = (" & Me! [Text0] & ")" ', например, почему скобки? – Fionnuala

ответ

-1

Я сделал это для работы со следующим кодом. Thx

Private Sub Text4_Exit(Cancel As Integer) 
Dim strSQL As String 
strSQL = "UPDATE Quantity " _ 
& "SET [DateProduced] = #" & Format(Me.Text4.Value, "dd-mm-yyyy") & "#" _ 
& "WHERE [ID] = (" & Me![Text0] & ");" 

DoCmd.RunSQL strSQL 

End Sub 
0

Этот формат даты не подходит для значений, в которых dd/mm может быть заменен на действительную дату. Он должен гласить:

Private Sub Text4_Exit(Cancel As Integer) 

    Dim strSQL As String 

    strSQL = "UPDATE Quantity " _ 
    & "SET [DateProduced] = #" & Format(Me!Text4.Value, "yyyy\/mm\/dd") & "# " _ 
    & "WHERE [ID] = " & Me![Text0].Value & ";" 

    DoCmd.RunSQL strSQL 

End Sub 

Примечание: вы должны изменить имена Text0 и т. Д. На значащие имена.