2013-10-03 31 views
2

用戶將文本輸入到txtAddNote中,然後單擊cmdAddNote按鈕,VBA運行並使用時間和日期戳將附註附加到txtNotes。當文本框中已經有文本時,僅添加到文本框中的字符串

但它只在txtNotes中已有文本時才起作用。當txtNotes爲空時,我需要做些什麼才能使其工作?

Private Sub cmdAddNote_Click() 
Dim MyDate As String 

MyDate = Now() 

Form_ClientF.txtNotes = vbCrLf + MyDate + vbCrLf + vbCrLf + Form_ClientF.txtAddNote + vbCrLf + vbCrLf + Form_ClientF.txtNotes 

Form_ClientF.txtAddNote = "" 

End Sub 
+0

見我[ **回答**](http://stackoverflow.com/a/19163157/1253219)在你以前的問題如何完成這一點。它會檢查評論以查看它是否已包含某些內容。如果是這樣,那麼它會將新評論附加到它,否則它只是將新評論分配給它。它還確保在添加評論之前新評論包含某些內容。 – Linger

回答

1

Contatenating一個Null值和一個字符串很可能使整個事情Null,那麼試試這個來代替:

Form_ClientF.txtNotes = vbCrLf + MyDate + vbCrLf + vbCrLf + Nz(Form_ClientF.txtAddNote, "") + vbCrLf + vbCrLf + Nz(Form_ClientF.txtNotes, "") 
2

使用.Value方法,而不是直接引用該文本框。

對於這個問題,只要引用一個Excel VBA對象 - 複選框等,就可以使用它。這樣可以爲你節省很多挫折,並且可以解決這樣的問題。

Private Sub cmdAddNote_Click() 
Dim MyDate As String 

MyDate = Now() 

Form_ClientF.txtNotes.value = vbCrLf + MyDate + vbCrLf + vbCrLf + Form_ClientF.txtAddNote.value + vbCrLf + vbCrLf + Form_ClientF.txtNotes.value 

Form_ClientF.txtAddNote.value = "" 

End Sub 
2

我假設你將確保你不運行cmdAddNote_Click除非txtAddNote包含一些補充(見下面的示例代碼)。用來連接與空字符串時

如果是真的,你可以做到這一點...

Form_ClientF.txtNotes = vbCrLf & MyDate & vbCrLf & vbCrLf & _ 
Form_ClientF.txtAddNote & (vbCrLf + vbCrLf + Form_ClientF.txtNotes) 

這種方法利用+&之間的差異優勢。以下是來自即時窗口的示例,說明不同之處。

? "a" + Null 
Null 
? "a" & Null 
a 

下面是使用這種方法的形式的屏幕捕獲...

enter image description here

而到了表單中使用的代碼...

Option Compare Database 
Option Explicit 

Private Sub cmdAddNote_Click() 
    Me.txtnotes = Format(Now, "mmm dd, yyyy h:nn:ss ampm") & vbCrLf & _ 
     Me.txtAddNote & (vbCrLf + vbCrLf + Me.txtnotes) 
    Me.txtAddNote = vbNullString 
    Me.txtAddNote.SetFocus 
    Me.cmdAddNote.Enabled = False 
End Sub 

Private Sub Form_Current() 
    Me.cmdAddNote.Enabled = (Len(Trim(Nz(Me.txtAddNote, vbNullString))) > 0) 
End Sub 

Private Sub txtAddNote_Change() 
    Me.cmdAddNote.Enabled = (Len(Trim(Nz(Me.txtAddNote.Text, vbNullString))) > 0) 
End Sub 
+1

啊哈。當涉及「空值」時,'&'和'+'的行爲會有所不同。很高興知道! +1 –