2013-12-13 2 views
2
Public Function EditUpdate() 
Dim rstEditAddress As DAO.Recordset 
Dim Svalue, EditedAddressLine1 As Variant 

Svalue = Me.lstBoxCompanyName.Value 

EditAddressValue = "SELECT * FROM Companies WHERE CompanyID = " & Svalue 
Set rstEditAddress = CurrentDb.OpenRecordset(EditAddressValue) 

EditedAddressLine1 = Me.txtbxAddressLine1.Value 

With rstEditAddress 
.Edit 
    .Fields("AddressLine1") = EditedAddressLine1 
    .Fields("AddressLine2") = NewAddressLine2 
    .Fields("AddressLine3") = NewAddressLine3 
    .Fields("Town") = NewTown 
.Update 
End With 

End Function 

편리하게 이름이 txtbxAddressLine1 인 텍스트 상자가 있습니다. Access에서 On Change 이벤트를 사용하면이 이벤트가이 함수를 호출하며 '편집 된'데이터로 테이블의 레코드를 업데이트하는 절차를 수행해야합니다. 그러나 EditedAddressLine1의 가치는 결코 변하지 않는 것 같습니다! 항상 원래 테이블에 있던 값을가집니다.On Change 이벤트 처리기에서 컨트롤의 새 내용 검색

왜 이런 일이 발생했는지에 대한 제안이 있으십니까?

EditedAddressLine1 = Me.txtbxAddressLine1.Text 
+0

이 '와 함께 ...'블록 전에'을 Debug.Print EditedAddressLine1'을 수행 제어를위한 Change 이벤트 핸들러에서 –

답변

3

, 새로운 데이터를 얻기 위해 Text하지 Value 속성을 읽어보십시오. `EditedAddressLine1`의 값 저장소가 재정의 할 것으로 예상되는 실제 값인지 확인하십시오
+0

감사합니다! 치료를했습니다. –