在该窗体(frmMbxxlr)【删除】按钮的Click事件中输入如下代码:
Private Sub Command3_Click()
If MsgBox("你确认要删除这条记录吗?", vbExclamation + vbOKCancel, "警告") = vbCancel Then '取消删除记录的行为
Exit Sub
End If
Adodc1.Recordset.Delete ‘删除记录
Adodc1.Recordset.Update ‘保存
MsgBox "成功删除该记录!", vbInformation + vbOKOnly
End Sub
要从记录集中删除记录的操作分为三步:
(1)定位被删除的记录使之成为当前记录。
(2)调用Delete方法。
(3)移动记录指针。
注意:在使用Delete方法时,当前记录立即删除,不加任何的警告或者提示。删除一条记录后,被数据库所约束的绑定控件仍旧显示该记录的内容。因此,你必须移动记录指针刷新绑定控件,—般采用移至下一记录的处理方法。在移动记录指针后,应该检查Eof属性
关于“打印”功能将在后面的报表打印中作详细介绍,这里就不作叙述。
本模块界面如图5-6所示:
图 5-6
5.3 民兵信息查询模块的设计与实现
民兵信息查询模块:查询时可根据需要选择相应的查询方式,这里可按民兵个人编码、民兵所属的一级行政单位编码、所在单位编码和姓名四种方式来进行查找。功能描述:把输入的项目作为where条件,没输入的项目不作为where条件,将界面上输入的信息作为查询条件到数据库mbxt的“民兵信息录入”表中将其详细信息通过窗体中的DataGrid控件显示出来。
操作:在四种查询方式中任选一种,输入后单击【查找】按钮,如果找到符合条件的记录便在DataGrid中显示,否则,会弹出如图5-8(这里以按姓名查找时没找到相应记录为例)所示的对话框进行提示。单击【返回】按钮是回到主窗体(frmmain)。如果要对查找的结果进行修改则双击该记录,在弹出的“修改”窗体中进行修改,然后再单击【确定】按钮即可完成修改。
图5-8
本模块界面如图5-7所示:
代码及实现方式。在【查找】按钮的Click事件中输入如下代码:
Dim flag As Integer
If Option1.Value = True Then '选择查询方式并判断输入是否合法
If Len(Text1.Text) <> 17 Then
MsgBox "请输入个人编码17位!"
Text1.SetFocus
Exit Sub
Else
flag = 1
End If
…
以上这段代码是完成查询方式的选择,在这里设置了四种查询方式,分别是按民兵个人编码,行政编码,单位编码和姓名,在确定了按某种方式进行查询时,接下来便是用select语句在表中找到符合条件的记录,代码中where后面的表达式就是查询条件。下面这部分代码即是按照相应的查询方式显示查询结果,如果存在,则在窗体中的DataGrid数据网格控件中显示,否则,会弹出一个信息框告知没有找到符合要求的记录。
Select Case flag '按照相应的查询方式显示查询结果
Case 1
Label2.Visible = True '显示"查询结果"字样
Adodc1.RecordSource = "select * from 民兵信息录入 where 个人编码 ='" & Trim(Text1.Text) & "' "
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
If Adodc1.Recordset.EOF And Adodc1.Recordset.BOF Then
MsgBox "没有与该个人编码相应的记录存在!", vbInformation + vbOKOnly, "查询结果"
…
Else
If Not (Adodc1.Recordset.EOF And Adodc1.Recordset.BOF) Then
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.MoveLast
…
Exit Sub
Case 2
…
注:在该VB代码中使用了SQL 的SELECT语句实现查询,SELECT语句基本上是数据库记录集的定义语句。ADO Data控件的RecordSource属性不—定是数据表名,可以是数据表中的某些行或多个数据表中的数据组合。可以直接在ADO Data控件的RecordSource属性栏中输入SQL,也可在代码中过SQL语句将选择的记录集赋给数据控件的RecordSource属性,也可赋予对象变量。
图 5-7
5.4 民兵信息修改模块的设计与实现
该模块是完成民兵信息修改,这里通过回显技术将要修改的信息先回显到修改窗体中的相应文本框中,然后,对其中的相应项进行修改。在修改好后单击【确认】按钮即可保存入库。修改窗体如图5-9所示:
图 5-9
代码及实现方式:
该模块的核心部分代码如下:
If MsgBox("你确认要修改该记录吗?", vbQuestion + vbOKCancel) = vbOK
Then
frmCx.Adodc1.Recordset.Delete '删除原记录
frmCx.Adodc1.Recordset.Update
frmCx.Adodc1.Recordset.AddNew '将修改后的记录添加入库
frmCx.Adodc1.Recordset("个人编码") = Trim(Text1.Text)
frmCx.Adodc1.Recordset("行政编码") = Trim(Text2.Text)
frmCx.Adodc1.Recordset("单位编码") = Trim(Text3.Text)
…
frmCx.Adodc1.Recordset.Update
MsgBox "信息修改成功!", vbInformation + vbOKOnly, "提示"
…
说明:要先删除原记录,然后,再将修改后的记录添加入库以更新。单击【取消】按钮将会中止修改行为,并关闭该窗体。
5.5 统计与报表模块的设计与实现
统计与报表模块是由民兵组织实力报表窗体(frmBaobiao)和民兵组织实力统计窗体(frmTongji)构成。实现的功能如下: 首页 上一页 6 7 8 9 10 11 下一页 尾页 9/11/11
(1)对民兵组织可以进行动态的添加和删除,当添加一个新的组织时,可向其添加部队作战单位,但是同一组织下的部队作战单位不能重复。当删除时,与该组织相关的记录要全部删除(级联删除)。
(2)既能看到所有民兵组织的情况,又能有选择的查看与某民兵组织相关的情况。
(3)打印报表