2008-10-17 2 views
5

모든 양식이 모달인 MS Access 응용 프로그램을 작성 중입니다. 그러나 양식에서 데이터가 변경된 후에는이 양식의 상위 폼을 최신 데이터로 새로 고침하고 싶습니다. 그것을 할 수있는 방법이 있습니까? 더 자세히 설명하려면 :액세스 양식을 새로 고치는 방법

폼 A와 폼 B의 두 가지 폼이 있다고 가정하십시오. 둘 다 모달 폼입니다. 양식 A에서 양식 B를 시작하고 이제 양식 B에 사용자주의가 있습니다. 그러나 B 형이 끝나면 A 형을 새로 고쳐야합니다. 그럴 수있는 방법이 있습니까?

답변

6

아니, 그것이 가능

경우 나, A 형의의 Form_Load 를 실행하려는 것과 같다 두 가지 형식 모두에서 호출 할 수있는 프로 시저의 코드 그것은 최고의 표준 모듈의 코드를 넣어,하지만 당신은 양식에 그것을 할 수 :

양식 B가 :

Sub RunFormALoad() 
    Forms!FormA.ToDoOnLoad 
End Sub 

양식 A :

Public Sub Form_Load() 
    ToDoOnLoad 
End Sub  

Sub ToDoOnLoad() 
    txtText = "Hi" 
End Sub 
+0

이전에는 생각하지 않았습니다. 고마워요 –

6

당신은 다시 칠 수 및/또는 다시 쿼리 : 폼 B의 close 이벤트에

:

Forms!FormA.Requery 

이 당신이 무엇을 의미합니까? 하기 Varun 마하 잔은

이 작업을 수행하는 일반적인 방법은 관련을 넣어 -

+0

아니요, 가능한 경우 양식 A의 Form_Load를 실행하고 싶은 것 같습니다. –

1

"다시 쿼리는"실제로 무엇을이다 당신이 원하는 것을 실행할 수 있지만, Form A의 "On Got Focus"이벤트에서 그렇게 할 수 있습니다. Form_Load에 코드가 있으면 아마도 Form_Got_Focus로 이동할 수 있습니다.

+1

Varun Mahajan의 의견을보세요. Requery는로드 이벤트를 실행하지 않습니다. – Fionnuala

+0

그래서 나는 Form_Got_Focus에 코드를 옮길 것을 제안했다. (두 번째 대답에서했던 것처럼). 폼에 연결된 데이터를 새로 고치려면 재 쿼리가 필요합니다. – BIBD

+0

hew가 Load 이벤트를 다시 수행하려는 경우 코드를 다른 하위 (Remou가 설명한 것처럼)로 이동 한 다음로드에서 호출 한 다음 새로 고침 라우팅에서 호출합니다 (B를 닫을 때 또는 A와 함께 A를 다시 입력 할 때). Got_Focus). A가 다른 창도 열면 Focus가 작동합니다. – BIBD

0

REQUERY 데이터를 변경 한 특정 콤보 상자를 사용하고 Cmd.Close 문 뒤에 사용하는 것이 좋습니다. 그런 식으로 데이터를 입력하는 경우 해당 데이터도 다시 쿼리됩니다.

DoCmd.Close 
Forms![Form_Name]![Combo_Box_Name].Requery 

당신은이 예제는 보조 테이블에 데이터를 입력 양식을 열 것을 예로 최근에 변경된 값

Dim id As Integer 
id = Me.[Index_Field] 
DoCmd.Close 
Forms![Form_Name]![Combo_Box_Name].Requery 
Forms![Form_Name]![Combo_Box_Name] = id 

를 가리 키도록 할 수 있습니다.

School_Index 및 School_Name을 School 테이블에 저장하고이를 Student_ table (School_Index 필드 만 포함)에서 참조한다고 가정 해 보겠습니다. 당신이 학생을 편집하는 동안, 당신은 당신의 학교 표에없는 학교, 그를 연결해야 등 등

-1

입력하는 데 필요한 양식을 새로 고치려면 - 버튼 이벤트 me.refresh 에를 클릭