2017-05-16 5 views
0

액세스가 2007-2010 년에 다른 폼에 추가 된 후 하위 폼을 새로 고치는 데 문제가 있습니다. 그것은 매우 간단 할 수 있지만 나는 어디서 실패하는지 모르겠습니다.다른 양식에 레코드를 추가 한 후 하위 폼 새로 고침

나는 세 가지 형태가 있습니다

main_user라는 기본 사용자 양식입니다
  • 하나,
  • 사용자가 tb_requirements
  • 라는 구매 요구 사항과 연결되어 또 다른 하나를 만들어 다른 tb_requirements는 tb_records라고 불린다.

이 시스템의 주된 아이디어는 tb_requirements에 첨부 파일이있는 일반 구매 요구 사항을 작성한 다음 일반 요구 사항 양식 (tb_records)에 몇 가지 세부 요구 사항을 추가한다는 것입니다.

이 기능은 이미 작동하지만 열려 있거나 새로운 요구 사항이 모두 포함 된 주 사용자 화면 (main_user)으로 업데이트/이동하려고하면 작동하지 않습니다. 주요 사용자 양식은 테이블 tb_requirements의 하위 양식을 사용하고 있습니다. main_user의 VBA에 그래서, 나는 다음과 같은 코드를 썼습니다 : 나는 또한 .Refresh.Recalc과 노력

Private Sub Form_Load() 

    Dim sSQL as String 

    sSQL = 'with the query I want to show in the screen 

    Me.tb_requirements.Forms.RecordSource = sSQL 

    Me.tb_requirements.Forms.Requery 

End sub 

을 그리고 그것은 작동하지 않습니다. 도와 주실 수 있겠습니까?

+0

Form_Load는 폼을 처음로드 할 때 한 번만 실행됩니다. 설명에 따르면 main_user 양식이 ** 이미 **로드 된 상태입니다. 그러면로드 된 상태에서 다른 양식에 레코드가 추가되고 이미로드 된 main_user를 새로 고치고 수정하려면? 이 경우 Form_Load가 다시 실행되지 않습니다. –

+0

신속한 피드백을 주신 @CPerkins에게 감사드립니다. 네, 그게 내가 시도하고있어하지만, Form_Load 이벤트가 다시 실행되지 않습니다, 지금은 Form_Open 및 Form_Current 함께 노력하고있어,하지만 그들은 새로 추가 된 레코드로 결과를 새로 고치지 않습니다. 양식을 다시 쿼리하기 전에 수행해야 할 다른 작업이 있습니까? – JHin84

+0

그러면 Form_Activate가됩니다. – Gustav

답변

0

activate가 필요할 수 있습니다. 메인 폼에서 포커스를 되 찾는 것 (IIRC)과 같습니다.

다른 접근법은 대화 모드에서 '보조'양식을 여는 것입니다. 의사 :

- start working in main_user 
- open purchasing requirements -- but open it in *dialog mode*. 
    -> code in main_user stops 
     - work in purchasing requirements 
     - close purchasing requirements 
    -> code in main_user starts *from where it stopped*. 
    -> refresh the subform now - me.sfrmName.form.requery 

는 2 선에서 그것을 할 수 있습니다.

1. on button click, open purchasing requirements in dialog mode; 
2. refresh subform. 

구매 요구 사항을 처리하고 있습니다.

0

안녕 얘들 아! 나는 이미 알아 냈어. 필자가 놓친 것은 새 레코드를 추가 한 후 양식과 표를 닫는 것입니다. 나는 이것을 .Requery이 일할 수있는 한 후

DoCmd.Close acForm, "tb_requirements", acSaveYes 
DoCmd.Close acTable, "tb_requirements", acSaveYes 

, 그렇지 않으면 동일한 데이터로 남아 있었다. 정말 고맙습니다. 시간을내어 조언 해 주시고, 정말로 감사드립니다.