我正在使用工作表作为数据库表。我有一个用户表单来填充数据。
我想编写以下方案。
当我单击用户窗体上的保存按钮时,如果用户窗体中有任何空白文本框,则必须弹出一个带有“是”“否”按钮的消息框,并显示“未输入客户名称”的消息你想进入“。
如果单击“是”,则必须转到空白字段。如果我单击“否”,它必须退出消息框并转到下一个空白字段(如果有)。它必须检查所有空白字段,然后只将数据保存到工作表表中。
我有以下代码将日期从用户窗体保存到工作表中的第一个可用空白行,但不检查用户窗体中的任何空白文本框。
Private Sub cmdsave_Click()
Dim irow As Long
Dim ws As Worksheet
Set ws = Worksheets("customerDetails")
'find first empty row in database
irow = ws.Cells(Rows.Count, 3) _
.End(xlUp).Offset(1, 0).Row
'save the data to the database
ws.Cells(irow, 2).Value = Me.txtcustname.Value
ws.Cells(irow, 3).Value = Me.txtinvad1.Value
ws.Cells(irow, 4).Value = Me.txtinvad2.Value
ws.Cells(irow, 5).Value = Me.txtinvad3.Value
ws.Cells(irow, 6).Value = Me.txtdelyad1.Value
ws.Cells(irow, 7).Value = Me.txtdelyad2.Value
ws.Cells(irow, 8).Value = Me.txtdelyad3.Value
ws.Cells(irow, 9).Value = Me.txtcstno.Value
ws.Cells(irow, 10).Value = Me.txttinno.Value
ws.Cells(irow, 11).Value = Me.txteccno.Value
ws.Cells(irow, 12).Value = Me.txtdlno1.Value
ws.Cells(irow, 13).Value = Me.txtdlno2.Value
ws.Cells(irow, 14).Value = Me.txtstno.Value
ws.Cells(irow, 15).Value = Me.txtcsttinno.Value
ws.Cells(irow, 16).Value = Me.txtpanno.Value
ws.Cells(irow, 17).Value = Me.txtins.Value
'clear the data
Me.txtcustname.Value = ""
Me.txtinvad1.Value = ""
Me.txtinvad2.Value = ""
Me.txtinvad3.Value = ""
Me.txtdelyad1.Value = ""
Me.txtdelyad2.Value = ""
Me.txtdelyad3.Value = ""
Me.txtcstno.Value = ""
Me.txttinno.Value = ""
Me.txteccno.Value = ""
Me.txtdlno1.Value = ""
Me.txtdlno2.Value = ""
Me.txtstno.Value = ""
Me.txtcsttinno.Value = ""
Me.txtpanno.Value = ""
Me.txtins.Value = ""
End Sub
答案 0 :(得分:2)
如果您将文本框的叙述名称(例如“客户地址”)存储在控件的tag属性中,那么您可以使用类似下面的内容。
Private Sub CommandButton1_Click()
Dim t As Control, res As VbMsgBoxResult
For Each t In Me.Controls
If TypeName(t) = "TextBox" Then ' Make sure we're only looking at textboxes.
If t.Text = vbNullString And t.Tag <> vbNullString Then
res = MsgBox("You've not completed the " + t.Tag + " field. Would you like to complete it now?", vbYesNo + vbQuestion)
If res = vbYes Then Exit Sub
End If
Next
End Sub