2016-07-29 72 views
0

我有一個小的If語句,如果另一個字段爲空,它會更改字段的controlsource。該「之前=是不正確的,我不知道用什麼來保證整個字符串與=開始是包括在內。如果聲明改變field.control來源

Private Sub Report_Load() 
If IsNull(FirstName2) Then 
OwnersNames.ControlSource = "=FirstName1] & " " & [LastName1]" 
Else 
OwnersNames.ControlSource = "=[FirstName1] & " " & [LastName1] & " and " & [FirstName2] & " " & [LastName2]" 
End If 
End Sub 
+0

看起來像一對語法hicups –

回答

1

如果我正確地讀這篇文章,那麼試試這個,它使用多個引號來串聯聲明:

Private Sub Report_Load() 
If IsNull(FirstName2) Then 
    OwnersNames.ControlSource = "=[FirstName1]" & " " & "[LastName1]" 
Else 
    OwnersNames.ControlSource = "=[FirstName1]" & " " & "[LastName1]" & " and " & "[FirstName2]" & " " & "[LastName2]" 
End If 
End Sub 
+0

謝謝,但我已經試過,還有一些其他組合。在添加「之前=」,我得到了「期望的聲明結束」錯誤 – NewbieVBA

0

如果您嘗試以連接字段(如「加」在一起),你需要這樣的東西:

Private Sub Report_Load() 
    If IsNull(FirstName2) Then 
     OwnersNames.ControlSource = "=[FirstName1] & ' ' & [LastName1]" 
    Else 
     OwnersNames.ControlSource = "=[FirstName1] & ' ' & [LastName1] & ' ' & [FirstName2] & ' ' & [LastName2]" 
    End If 
End Sub 

請記住,您可以連接文本F (例如文本框)一起。

我不確定結合字段的控制源是否以相同的方式工作。可以肯定的是,一種選擇是將每個文本框重命名爲與控件源不同的內容。

+0

感謝Ryan,你所建議的改變部分工作原理當報告運行時,只有if語句的第一部分起作用,只是顯示名字和姓氏,即使在FirstName2字段中有數據。任何想法? – NewbieVBA

+0

我認爲這是你的if語句,試着做類似if.firstName2 = vbNullstring,然後改爲打印出來。 FirstName2當它運行追蹤問題 –

+0

Ryan,你是正確的.Me.FristName2字符串工作。謝謝! – NewbieVBA

0

下面是現在的代碼,當加載時產生'John Smith And',即使Firstname2字段爲空。

Private Sub Report_Load() 
If Me.FirstName2 = vbNullString Then 
OwnersNames.ControlSource = "=[FirstName1] & ' ' & [LastName1]" 
Else 
OwnersNames.ControlSource = "=[FirstName1] & ' ' & [LastName1] & ' and ' & [FirstName2] & ' ' & [LastName2]" 

End If 
End Sub 
+0

對不起,由於某種原因,當我添加評論它會不要讓我的墨盒返回並添加代碼,所以我沒有選擇,只能發佈答案。 – NewbieVBA

0

你真的有意設置控制源或只是字段的值嗎? 我想這可能是你想要完成的?

Private Sub Report_Load() 
If Me.FirstName2 = "" Then 
me.OwnersNames = [FirstName1] & " " & [LastName1] 
Else 
me.OwnersNames = [FirstName1] & " " & [LastName1] & _ 
" and " & [FirstName2] & " " & [LastName2] 

End If 
End Sub