vb吐槽班04 一句话,不想多说

前端之家收集整理的这篇文章主要介绍了vb吐槽班04 一句话,不想多说前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Ti3输了

好了,继续上次说的吧。

上次写的欠考虑了,什么都想不出来就乱写了,后来想想,没见过学生信息管理系统的,根本不知道我在说些什么。

那么这次还是仔细一点吧。不过毕竟是吐槽班,不是提高班,才不想那些什么严肃的风格,本来这些东西看着就烦,难道我们还要延续大学的那种教育方式不成?算了,一说起教育又要各种长篇大论了。

剩下的就是整个信息管理系统的部分了,总的来说就是,添加修改查询三大功能,然后连接上数据库数据库,更新数据库中的内容

先从简单的添加开始

Private Sub cmdOK_Click()
    Dim mrc As ADODB.Recordset
    Dim Msgtext As String
    Dim txtsql As String
    
    If Not Testtxt(txtCourseno.Text) Then
        MsgBox "请输入课程编号",vbOKOnly + vbExclamation,"警告"
        txtCourseno.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(comboCoursetype.Text) Then
        MsgBox "请选择课程类型","警告"
        comboCoursetype.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(txtCoursename.Text) Then
        MsgBox "请输入课程名称","警告"
        txtCoursename.SetFocus
        Exit Sub
    End If
    
    If Not Testtxt(txtCoursedes.Text) Then
        MsgBox "请输入课程描述","警告"
        txtCoursedes.SetFocus
        Exit Sub
    End If
    
    If Not IsNumeric(Trim(txtCourseno.Text)) Then
        MsgBox "请输入数字编号","警告"
        txtCourseno.SetFocus
        Exit Sub
    End If
    '检测是否输入规范
    txtsql = "SELECT * FROM course_info "
    Set mrc = Executesql(txtsql,Msgtext)
    
    While (mrc.EOF = False)
        If Trim(mrc.Fields(0)) = Trim(txtCourseno.Text) Then
            MsgBox "课程编号已存在,请重新输入","警告"
            txtCourseno.SetFocus
            Exit Sub
        Else
            mrc.MoveNext
        End If
    Wend
    '检测是否重复
    mrc.AddNew
    mrc.Fields(0) = Trim(txtCourseno.Text)
    mrc.Fields(1) = Trim(txtCoursename.Text)
    mrc.Fields(2) = Trim(comboCoursetype.Text)
    mrc.Fields(3) = Trim(txtCoursedes.Text)
    mrc.Update
    mrc.Close
        
    MsgBox "添加成功","添加成功"
    '不重复则添加一条新纪录
    Unload Me
        
End Sub


  
 如果是能看懂正规命名的同学们,我不贴图也是没事的吧,注视我也都写了,整体上说一下吧。 
 

首先,判断你输入的东西是否符合我们要的信息,当然你非得把班号写成“信息技术提高班十期”,我也没治,咱就改改上边的代码就行了。然后,用我们上上期定义的Executesql函数检查一下输入的班号有没有重复的,其实这个也和学号,身份证号啥的一样,一个提高班,不能有俩十期是吧。好的,接下来输入的都OK,我们就把输入的信息添加进记录集,然后update一下,其实挺简单的是吧。。。

修改比较麻烦,我先说说查询

这个查询就要贴图了。。。

首先上面那个表格似的东西是MSFlexGrid控件,至于怎么整出来,自行百度

Private Sub Form_Load()
    With myflexgrid                                           '初始化flexgrid控件的行标题
        .CellAlignment = 4                                    'flexAlignCenter
        .TextMatrix(1,0) = "学号"
        .TextMatrix(1,1) = "姓名"
        .TextMatrix(1,2) = "性别"
        .TextMatrix(1,3) = "出生日期"
        .TextMatrix(1,4) = "班号"
        .TextMatrix(1,5) = "联系电话"
        .TextMatrix(1,6) = "入校日期"
        .TextMatrix(1,7) = "家庭住址"
    End With
End Sub
在窗体加载的时候先初始化flexgrid,第一行显示下面这个东西。


然后选好查询方式,输入信息,点击查询

Private Sub cmdInquire_Click()
'不同的选择,对sql语句进行不同的修改
    Dim txtsql As String
    Dim Msgtext As String
    Dim dd(4) As Boolean
    Dim mrc As ADODB.Recordset
    
    txtsql = "SELECT * FROM student_info where "
    '检查学号输入
    If Check1(0).Value Then
        If Trim(txtSID.Text) = "" Then
            MsgBox "学号不能为空","警告"
            txtSID.SetFocus
            Exit Sub
        Else
            If Not IsNumeric(Trim(txtSID.Text)) Then
                MsgBox "请输入数字","警告"
                txtSID.SetFocus
                Exit Sub
            End If
            dd(0) = True
            txtsql = txtsql & "student_ID='" & Trim(txtSID.Text) & "'"
        End If
    End If
    '检查姓名输入
    If Check1(1).Value Then
        If Trim(txtName.Text) = "" Then
            MsgBox "姓名不能为空","警告"
            txtName.SetFocus
            Exit Sub
        Else
            dd(1) = True
            If dd(0) Then
                txtsql = txtsql & "AND student_name='" & txtName.Text & "'"
            Else
                txtsql = txtsql & "student_name = '" & txtName.Text & "'"
            End If
        End If
    End If
    '检查班号输入
    If Check1(2).Value Then
        If Trim(txtClassno.Text) = "" Then
            MsgBox "班号不能为空","警告"
            txtClassno.SetFocus
            Exit Sub
        Else
            dd(2) = True
            If dd(0) Or dd(1) Then
                txtsql = txtsql & "AND class_no='" & txtClassno.Text & "'"
            Else
                txtsql = txtsql & "class_no='" & txtClassno.Text & "'"
            End If
        End If
    End If
    '如果没有设置,提示
    If Not (dd(0) Or dd(1) Or dd(2) Or dd(3)) Then
        MsgBox "请设置查询方式","警告"
        Exit Sub
    End If
    
    txtsql = txtsql & "ORDER BY student_ID"
    Set mrc = Executesql(txtsql,Msgtext)
    '再次初始化flexgrid
    With myflexgrid
        .Rows = 2
        .CellAlignment = 4
        .TextMatrix(1,7) = "家庭住址"
        '将mrc中的记录显示出来
        Do While Not mrc.EOF                                  
            .Rows = .Rows + 1                                 '这种方式也可防止空白行的出现
            .CellAlignment = 4
            .TextMatrix(.Rows - 1,0) = mrc.Fields(0)
            .TextMatrix(.Rows - 1,1) = mrc.Fields(1)
            .TextMatrix(.Rows - 1,2) = mrc.Fields(2)
            .TextMatrix(.Rows - 1,3) = Format(mrc.Fields(3),"yyyy-mm-dd")
            .TextMatrix(.Rows - 1,4) = mrc.Fields(4)
            .TextMatrix(.Rows - 1,5) = mrc.Fields(5)
            .TextMatrix(.Rows - 1,6) = Format(mrc.Fields(6),7) = mrc.Fields(7)
            mrc.MoveNext
        Loop 
    End With 
    mrc.Close 
End Sub

就是这种感觉,过程其实还是一样的,检查输入的信息,输入OK的话就查出要的信息,只不过之后就是显示出来罢了。

最麻烦的修改

稍微改了下源码。

Public Sub viewData()
'显示记录的函数
    txtCourseno.Text = mrc.Fields(0)
    txtCoursename.Text = mrc.Fields(1)
    comboCoursetype.Text = mrc.Fields(2)
    txtCoursedes.Text = mrc.Fields(3)
End Sub
Private Sub Form_Load()
'载入第一条记录
    Dim txtsql As String
    Dim Msgtext As String
    
    txtsql = "SELECT * FROM course_info"
    Set mrc = Executesql(txtsql,Msgtext)

    If mrc.RecordCount = 0 Then
    '如果没有记录,提示并使按钮不可用
        MsgBox "没有记录","警告"
        Exit Sub
    Else
        '显示第一条记录
        mrc.MoveFirst
        Call viewData
        mybookmark = mrc.Bookmark
    End If
End Sub
Private Sub cmdUpdate_Click()
    Dim txtsql As String
    Dim Msgtext As String
    Dim mrcc As ADODB.Recordset
    Dim mrccc As ADODB.Recordset
    
    '确认输入的信息是否符合规范
    If Not Testtxt(txtCourseno.Text) Then
        MsgBox "请输入课程编号","警告"
        txtCourseno.SetFocus
        Exit Sub
    End If
    mrc.Delete
    '删除当前记录
    txtsql = "select * from course_Info where course_No = '" & Trim(txtCourseno.Text) & "'"
    Set mrcc = Executesql(txtsql,Msgtext)
    If mrcc.EOF = False Then
    '课程编号是否重复
        MsgBox "课程编号重复,请重新输入","警告"
        mrcc.Close
        txtCourseno.SetFocus
    Else
        mrcc.Close
            
        mrc.AddNew
        mrc.Fields(0) = Trim(txtCourseno.Text)
        mrc.Fields(1) = Trim(txtCoursename.Text)
        mrc.Fields(2) = Trim(comboCoursetype.Text)
        mrc.Fields(3) = Trim(txtCoursedes.Text)
        mrc.Update
        '添加新的信息
        MsgBox "修改课程信息成功","修改成功"
        mrc.Bookmark = mybookmark
        Call viewData
    End If
End Sub


还能说啥,又是一样的过程。首先在窗体加载的时候载入一个记录,修改时先检查,在查找是否有重复项,最后删除当前记录,添加修改后的记录。

代码上看,基本上添加修改查询的过程是一样的,只不过是最后对记录做了一些不同的操作。
就我个人而言呢,这些都是在敲完之后,又看了一遍才发现的,有时候我们可以用同一种方法去实现许多的功能,而有时,也需要我们用其他巧妙地方法去实现我们不会的功能,我觉得这是我整个系统学到的最重要的东西。
好了,这期也是因为Ti3的滑铁卢搞得我不想写什么东西了,那就这样吧,我就不信还有人说我博客短!

下期预告: 不做死就不会死,删除最后的记录and设置课程不重复。 以上

原文链接:https://www.f2er.com/vb/258609.html

猜你在找的VB相关文章