2016-06-14 4 views
0

에 기록을 하위 폼을 참조 나는이 세 가지 하위 폼에 다음과 같은 형식 :액세스

enter image description here

오른쪽 상단에있는 버튼을 Excel에서 사용자 정의 폼을 엽니 다. 해당 userform에 이미 중 일부가 값으로 선택 되길 바랍니다. 그러나 내 VBA 코드에서 하위 폼의 레코드를 참조 할 수 없습니다. 나는 하위 폼의 이름이 아닌 이름과 같은 기본 폼의 값을 성공적으로 전송했습니다. 액세스 코드 :

Option Compare Database 

Private Sub Toggle159_Click() 
    Dim abc As String 
    abc = Me.CompanyName 

    Dim xlApp As Object 'Excel.Application, xlWB As Excel.Workbook 
    Dim xlWB As Object 
    Set xlApp = CreateObject("Excel.Application") 
    Set xlWB = xlApp.Workbooks.Open("C:\NA\eb\quotegenv2.xlsm") ' specify file 
    xlApp.Visible = True 
    xlApp.Run "Module3.showFormWithValues", abc 


End Sub 

위의 코드에서 CompanyName은 mainform에 대한 컨트롤입니다. 이 코드는 정상적으로 실행되지만 'me.subformname.form.controlname'을 사용하여 하위 폼의 항목을 참조하려고했지만 컨트롤 이름이 제안에 표시되지 않습니다. 모듈에 대한 Excel에서

코드 : 어떤 도움에 감사드립니다

' placed in code Module3 
    Sub showFormWithValues(txt1 As String) 
     With UserForm1 

      .ClientName.Text = txt1 

     End With 
    UserForm1.Show 
    End Sub 

.

답변

0

양식을 열기 전에 ClientName을 설정하려고했습니다.

모듈 3의 맨 위에있는 전역 변수를 사용하여 showFormWithValues과 양식간에 데이터를 공유하십시오. 아래의 예와 같은 공공 변수로 첫 번째 절차 전에 Module3의 상단에

보여줍니다 : -

Option Explicit 

Public StrCN As String 

Sub showFormWithValues(txt1 As String) 
    ... 
End Eub 

UserForm1 추가 (또는 이미 존재하는 경우 갱신)에서 다음 -

Private Sub UserForm_Activate() 
Me.ClientName.Text = Module3.StrCN 
End Sub 
+0

제공된 코드는 기본 폼의 항목을 참조하기 때문에 정상적으로 작동합니다. 내가 어려움을 겪고있는 것은 하위 양식의 항목을 참조하는 것입니다. – zkhan

+0

하지만 그게 어디에서 실패했는지 보여주지 않았습니까? 아니면 뭔가를 놓친 적이 있습니까? 클라이언트 이름과 마찬가지로 하위 양식 옵션을 전달하십시오. 또는 액세스를 사용하여 엑셀에서 사용할 수있는 엑셀 워크 북의 시트에 드롭 할 수 있습니까? –

+0

하위 폼의 항목을 참조하는 구문에 문제가 있습니다. 액세스 vba에서이를 수행하는 방법에 대해 구체적으로 설명해 주시겠습니까? – zkhan