2015-10-17 32 views
0

我有3個文本框,我想連接。 FNAME,MNAME,lname的IIF和isNothing

例如:

fname = Nat ----  mname = Arnido ---- lname = Congreso 

然後我希望他們使用一個命令按鈕在其他文本框稱爲全名串聯。

fullname = Congreso, Nat A. 

但在中間名​​爲空的情況下,全名應該看起來像這樣。

fullname = Congreso, Nat 

我發現很難刪除中間名稱的句點(。)。

這是我的代碼到目前爲止。

Me.fullname.Text = Me.lname.Text & ", " & Me.fname.Text & " " & IIf(IsNothing(Microsoft.VisualBasic.Left(Me.mname.Text, 1) & ""), "", (Microsoft.VisualBasic.Left(Me.mname.Text, 1)) & ". ") 
+3

對於大多數情況,Iif方法已被[If運算符](https://msdn.microsoft.com/en-us/library/bb513985.aspx)取代。 –

回答

0

文本框數據通常不是Nothing。它至多是一個空字符串:

Me.fullname.Text = Me.lname.Text & ", " & _ 
        Me.fname.Text & _ 
        If(Me.mname.Text = String.Empty, _ 
         "", _ 
         " " & Left(Me.mname.Text, 1) & ".") 
+0

是的..非常感謝你的快速回復。我已經爲這個代碼掙扎了大約3天了。非常感謝你 –

+2

見安德魯在OP的評論。 – dbasnett

+0

'Left'是** VB6遺留代碼**。你最好使用'「」&mname.Text.Chars(0)&「。」)' –

0

你也可以使用String Replace方法來刪除/修改任何想要的字符/圖形。

mname.Replace(".", "") 
+1

如果mname爲空,這有什麼幫助? – dbasnett

+0

在嘗試添加到全名字符串變量之前,只需檢查它是否正確。 'fullname.Text&= If if(String.IsNullOrWhiteSpace(mname),String.Empty,mname.Replace(「。」,「」))' 但是,如果調查StringBuilder類會更好。 http://www.dotnetperls.com/stringbuilder-vbnet –

2

我不會使用IIf或左。

fullname.Text = lname.Text.Trim & ", " & fname.Text.Trim 
    If Not String.IsNullOrWhiteSpace(mname.Text) Then 
     fullname.Text &= " " & mname.Text.Trim.Substring(0, 1) & "." 
    End If 

如果我是迷戀寫這作爲一個長的語句我會用。如果運營商。

fullname.Text = lname.Text.Trim & ", " & fname.Text.Trim & _ 
     If(Not String.IsNullOrWhiteSpace(mname.Text.Trim), " " & mname.Text.Substring(0, 1) & ".", "") 
+0

我會使用'mname.Text.Chars(0)'而不是'mname.Text.Substring(0,1)',因爲我覺得它更直觀。它更短。 –