机房总结

期待已久的机房终于结束了,在敲机房期间,有很多的困惑,例如在第一次验机房的时候,我还不是很清晰一把用户,管理员,操作员之间的关系,不理解一般用户到底是谁,是学生还是教师,师傅的观点是学生,但是我的观点是老师,而且我觉得学生怎么可以查看上机记录呢,所以啊,我觉得还是因该是一般用户,而且,最终也搞明白了那个是那个,

不得不说,机房确实不简单,更何况是在基础不咋样的我身上,但是通过机房的历练,我对vb有了更深入的理解,也让我更加觉得敲代码真的很好玩,。虽然我头发掉的更快了。

接下来我来集合一下觉得比较好用的几个代码段

  1. 主要是用于改变表格中MSFlexGrid1的表格按照内容变动
    在模块中添加此代码


Public Sub AdjustColWidth(frmCur As Form, gridCur As Object, Optional bNullRow As Boolean = True, Optional dblIncWidth As Double = 0)



Dim i, j As Integer

Dim dblWidth As Double

    With gridCur

        For i = 0 To .cols - 1

            dblWidth = 0

            If .ColWidth(i) <> 0 Then

                For j = 0 To .Rows - 1

                    If frmCur.TextWidth(.TextMatrix(j, i)) > dblWidth Then

                        dblWidth = frmCur.TextWidth(.TextMatrix(j, i))

                    End If

                Next

                .ColWidth(i) = dblWidth + dblIncWidth + 1000

            End If

        Next

End With

End if

在需要的循环的loop后面添加:

AdjustColWidth Me, MSFlexGrid1

 

2,在敲机房时,是不是会有重复的窗体的内容呢,例如像全体下机或者选择下机,这时候呢由于这两种下机和主窗体上的下机都相同,所以呢,我们就可以用很好的利用调用窗体来进行跟家更加方便的查询:

代码:

    

        '将上机卡号定义为一个数组,ReDim就是定义数组的

    

    ReDim a(mrc.RecordCount) As String‘定义是一个查询条数的总数组


        For i = 0 To mrc.RecordCount – 1


            a(i) = Trim(mrc!CardNo)

            CardNo = a(i)


            '给txtcardno.text赋值


            FrmMain.txtCardno.Text = a(i)

           

 FrmMain.Command2.Value = True


            '移动到下一条记录


            mrc.MoveNext


        Next


        MsgBox "所有学生下机成功!", vbOKOnly + vbExclamation, "提示"

        '清空MSHFlexGrid1里面的内容

        MSHFlexGrid1.Clear

组合查询对于大家来说应该算是比较难的一类了吧,但是正因为如此,所以呢,做出来的时候才更加激动啊,感受到了代码的奇妙之处,

(1)例如,在选择combo后,如果是日期或者时间那么只需要在文本框上面放时间控件儿DTPicker1

If Combo3.Text = "上机日期" Or Combo3.Text = "下机日期" Then

If Combo3.Text = "上机日期" Or Combo3.Text = "下机日期" Then


        Text3.Visible = False


        DTPicker3.Visible = True

        DTPicker3.Format = 1,‘1代表日期

    End If

    

     If Combo3.Text = "上机时间" Or Combo3.Text = "下机时间" Then

        Text3.Visible = False

        DTPicker3.Visible = True

        DTPicker3.Format = 2,‘2代表时间

    End If

(2)组合查询的精髓:我是进行一行一行的查询的

txtSQL = "select * from Line_Info where "
    
        If Trim(Combo1.Text) = "" Or Trim(Combo4.Text) = "" Or Trim(Text1.Text) = "" Then
        MsgBox "请将第一行选项内容填写完整!", vbOKOnly + vbExclamation, "警告"
    Exit Sub
    End If

    txtSQL = txtSQL & " " & FiledName(Combo1.Text) & " " & Trim(Combo4.Text) & "'" & Trim(Text1.Text) & "'"


    If Trim(Combo7.Text) <> "" Then

    If Trim(Combo2.Text) = "" Or Trim(Combo5.Text) = "" Or Trim(Text2.Text) = "" Then
        MsgBox "请将第二行选项内容填写完整!", vbOKOnly + vbExclamation, "警告"
    Exit Sub
    Else

    txtSQL = txtSQL & " " & Relationname(Combo7.Text) & " " & FiledName(Combo2.Text) & " " & Trim(Combo5.Text) & "'" & Trim(Text2.Text) & "'"
    End If
  End If

    If Trim(Combo8.Text) <> "" Then

    If Trim(Combo3.Text) = "" Or Trim(Combo6.Text) = "" Or Trim(Text3.Text) = "" Then
        MsgBox "请将第三行选项内容填写完整!", vbOKOnly + vbExclamation, "警告"
    Exit Sub
    Else

    txtSQL = txtSQL & " " & Relationname(Combo8.Text) & " " & FiledName(Combo3.Text) & " " & Trim(Combo6.Text) & "'" & Trim(Text3.Text) & "'"
    End If
  End If
  1. 结账的逻辑:

总收入=上期余额+充值金额-退卡金额-消费金额

  1. 需要注意的点:

(1)注意日期的格式,要看好数据库的日期格式,不行改一下数据库

Eg:

If DTPicker1.Visible = True Then  '当控件显示时,把值赋给文本框


        Text1.Text = Format(DTPicker1.Value, "yyyy-mm-dd")

End If

Char(10)::代表它的固定长度是10,而且它所占的位置是10

Varchar(50)最长是50 ,但是可以变动,而且它所占的位置只是它本身所占的位数

建议:把数据库中的卡名和学生名改为varchar


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值