出过程。
GoToadderror
IfcmdAdd.Caption="保存"Then
'下面对输入的有效性进行验证
IfTrim(txtHuxingnum.Text)=""Then
MsgBox"户型编号不能为空!",vbOKOnly+vbExclamation,""
txtHuxingnum.SetFocus
ExitSub
EndIf
IfTrim(txtFangxing.Text)=""Then
MsgBox"请选择房型!",vbOKOnly+vbExclamation,""
Combo1.SetFocus
ExitSub
EndIf
IfTrim(txtJianzhumianji.Text)=""Then
MsgBox"建筑面积不能为空!",vbOKOnly+vbExclamation,""
txtJianzhumianji.SetFocus
ExitSub
EndIf
IfTrim(txtTaomianji.Text)=""Then
MsgBox"套内面积不能为空!",vbOKOnly+vbExclamation,""
txtTaomianji.SetFocus
ExitSub
EndIf
IfNotIsNumeric(txtJianzhumianji.Text)Then'面积必须是数值
MsgBox"建筑面积请输入数字!",vbOKOnly+vbExclamation,""
txtJianzhumianji.SetFocus
ExitSub
EndIf
IfNotIsNumeric(txtTaomianji.Text)Then
MsgBox"套内面积请输入数字!",vbOKOnly+vbExclamation,""
txtTaomianji.SetFocus
ExitSub
EndIf
如果所有的数据都输入无误,则检查是否有重复的户型编号,如果有重复则给出提示,并退出过程。
rs_huxing.MoveFirst'输入合法,开始插入
DimiAsInteger
Fori=0Tors_huxing.RecordCount-1'逐条检查户型编号是否已经存在
IfTrim(rs_huxing.Fields(0))=Trim(txtHuxingnum.Text)Then
MsgBox"户型编号重复!",vbOKOnly+vbExclamation,""
txtHuxingnum.SetFocus
ExitSub
EndIf
rs_huxing.MoveNext
Nexti
如果没有重复,则将新的数据添加到数据库中。注意,数据库中的字段格式应该和即将添加的数据格式一致。添加完毕后使用Update方法更新数据库。
rs_huxing.MoveLast'户型编号不存在,在最后插入新纪录
rs_huxing.AddNew
rs_huxing.Fields(0)=Trim(txtHuxingnum.Text)'逐字段插入
rs_huxing.Fields(1)=CSng(txtJianzhumianji.Text)'数值转换为字符串
rs_huxing.Fields(2)=CSng(txtTaomianji.Text)
rs_huxing.Fields(3)=Trim(txtFangxing.Text)
rs_huxing.Fields(4)=Trim(txtJianjie.Text)
rs_huxing.Fields(5)=Trim(txtHuxingnum.Text)
rs_huxing.Update'将插入的记录保存
MsgBox"添加成功!",vbOKOnly+vbExclamation,""
同时需要更新表格控件的内容,将新的数据添加到表格中。
WithgrdHuxing'将表格最后一行数据更新
.Rows=rs_huxing.RecordCount+1
.Row=grdHuxing.Rows-1
.Col=0
.Text=Trim(txtHuxingnum.Text)
.Col=1
.Text=Trim(txtJianzhumianji.Text)
.Col=2
.Text=Trim(txtTaomianji.Text)
.Col=3
.Text=Trim(txtFangxing.Text)
.Col=4
.Text=Trim(txtFangxing.Text)
.Col=5
.Text=Trim(txtJianjie.Text)
EndWith
cmdAdd.Caption="增加"'成功保存后标题变为"增加"
Else'按钮标题为"增加"时
txtHuxingnum.Text=""'各个字段为空
txtJianzhumianji.Text=""
txtTaomianji.Text=""
txtJianjie.Text=""
cmdModify.Enabled=False'新增记录时,不能修改和删除记录
cmdDel.Enabled=False
cmdAdd.Caption="保存"'按钮标题变为"保存"
EndIf
ExitSub
adderror:
MsgBoxErr.Description
EndSub
4.3.2建立楼盘登记窗体(frmBuildingLogin)
这个窗体主要用来对楼盘资料进行登记,包括添加、修改、删除等各种操作。
1、界面设计
与设计户型登记窗体相似,在工程中添加一个窗体,命名为frmBuildingLogin。设置好控件及属性的frmBuildingLogin窗体如图6所示。
图6"楼盘登记"窗体效果图
2、工程流程
窗体加载使用ADO进行数据库的连接,同时在表格中显示出数据。
单击"增加"按钮时,所有的文本框为可用状态,并且设置为空,"增加"按钮变为"保存"按钮。在输入完新信息后,单击"保存"按钮,判断楼盘编号是否重复,对于不重复的楼盘进行入库保存。
单击"删除"按钮时,首先询问是否确定要删除该信息,在得到确认后取得用户选定的楼盘信息,根据户型编号进行删除。
单击"修改"按钮时,所有的文本框进入可编辑状态,修改按钮变为保存按钮。修改后,单击"保存"按钮,进行数据的更新。
3、添加代码
(1)"增加"按钮的"Click"事件代码
PrivateSubcmdadd_Click()
GoToadderror
Ifcmdadd.Caption="保存"Then
cmdadd.Caption="增加"
IfTrim(txtnum.Text)=""Then
MsgBox"楼盘编号不能为空!",vbOKOnly+vbExclamation,""
txtnum.SetFocus
ExitSub
EndIf
IfTrim(txthuxingnum.Text)=""Then
MsgBox"请选择户型编号!",vbOKOnly+vbExclamation,""
ExitSub
EndIf
IfTrim(txtprice.Text)=""Then
MsgBox"价格不能为空!",vbOKOnly+vbExclamation,""
txtprice.SetFocus
ExitSub
EndIf
IfNotIsNumeric(txtprice.Text)Then
MsgBox"价格请输入数字!",vbOKOnly+vbExclamation,""
txtprice.SetFocus
ExitSub
EndIf
rs_loupan.MoveFirst
DimiAsInteger
Fori=0Tors_loupan.RecordCount-1
IfTrim(rs_loupan.Fields(0))=Trim(txtnum.Text)Then
MsgBox"楼盘编号重复!",vbOKOnly+vbExclamation,""
txtnum.SetFocus
ExitSub
EndIf
rs_loupan.MoveNext
Nexti
rs_loupan.MoveLast
rs_loupan.AddNew
rs_loupan.Fields(0)=Trim(txtnum.Text)
rs_loupan.Fields(1)=Trim(txthuxingnum.Text)
rs_loupan.Fields(2)=CCur(Trim(txtprice.Text))
rs_loupan.Update
MsgBox"添加成功!",vbOKOnly+vbExclamation,""
cmdadd.Caption="增加"
WithgrdLoupan
.Rows=rs_loupan.RecordCount+1
.Row=grdLoupan.Rows-1
.Col=0
.Text=Trim(txtnum.Text)
.Col=1
.Text=Trim(txthuxingnum.Text)
.Col=2
.Text=Trim(txtlouhao.Text)
.Col=3
.Text=Trim(txtdanyuan.Text)
.Col=4
.Text=Trim(txtlouceng.Text)
.Col=5
.Text=Trim(txtfanghao.Text)
.Col=6
.Text=Trim(txtprice.Text)
EndWith
Else
cmdadd.Caption="保存"
txtnum.Text=""
txtprice.Text=""
cmdmodify.Enabled=False
cmddel.Enabled=False
EndIf
ExitSub
adderror:
MsgBoxErr.Description
(2)"修改"按钮的"Click"事件代码
PrivateSubcmdmodify_Click()
GoTomodifyerror
txtnum.Enabled=False
IfTrim(txtprice.Text)=""Then
MsgBox"价格不能为空!",vbOKOnly+vbExclamation,""
txtprice.SetFocus
ExitSub
EndIf
IfNotIsNumeric(txtprice.Text)Then
MsgBox"价格请输入数字!",vbOKOnly+vbExclamation,""
txtprice.SetFocus
ExitSub
EndIf
rs_loupan.MoveFirst
DimiAsInteger
Fori=0Tors_loupan.RecordCount-1
IfTrim(rs_loupan.Fields(0))=Trim(txtnum.Text)Then
rs_loupan.Fields(0)=Trim(txtnum.Text)
rs_loupan.Fields(1)=Trim(txthuxingnum.Text)
rs_loupan.Fields(2)=CCur(Trim(txtprice.Text))
rs_loupan.Update
MsgBox"修改成功!",vbOKOnly+vbExclamation,""
WithgrdLoupan
.Row=getrow
.Col=1
.Text=Trim(txthuxingnum.Text)
.Col=6
.Text=Trim(txtprice.Text)
EndWith
ExitSub
EndIf
rs_loupan.MoveNext
Nexti
modifyerror:
MsgBoxErr.Description
EndSub
(3)"删除"按钮的"Click"事件代码
PrivateSubcmddel_Click()
DimanswerAsString
Dimdelete_rowAsString
GoTodelerror
answer=MsgBox("确定要删除吗?"
上一篇:
VBACCTI电话语音应答系统(论文和程序)
下一篇:
“红牛饮料”在中国地区的品牌营销策划研究