5.
txtsql = "select *from student_info" 'where UserID='" & Trim(txtUserName.Text)& "'" & "order by UserID"
Set mrc= Executesql(txtsqlday,MsgTextday)
mrc.EOF与Trim(mrc.Fields(0)) <>Trim(txtUserName.Text)语句区别,为什么前者不存在其他问题,而后者出现如下图问题?
这是因为前面数据字段连接的时候,已经通过字段UserID连接,下面代码mrc就可以直接替代mrc.fields(0),而多次读取它就会多余,系统容易反应不过来(我个人理解,其他答案可以和我分享哦)
6.登陆进来以后怎么判断用户的权限?
直接判断数据字段内容,符合要求就显示某些功能,不符合则不能使用。
例:
Private Sub MDIForm_Load()
Dim mrc As ADODB.Recordset
Dim txtsql As String,MsgText As String
txtsql = "select * from User_Info where userID='" & UserName & "'" '数据表定位连接
Set mrc = Executesql(txtsql,MsgText)
If mrc.BOF And mrc.EOF Then
Else
If mrc.Fields(2) = "一般用户" Then
' Generaluser.Enabled=True(如果属性是默认值,则此语句可有可无)
Operator.Enabled = False
Administrator.Enabled = False
ElseIf mrc.Fields(2) = "操作员" Then
Operator.Enabled = True
Administrator.Enabled = False
ElseIf mrc.Fields(2) = "管理员" Then
Administrator.Enabled = True
End If
End If
End sub
因为 MDI 程序中 子窗体实际上是位于 MDIClient 里,就是说 子窗体的父窗体 是 MDIClient ,而 放置在MDI中 的 pictureBox 和MDIClient是同一级的 层次结构
ThunderMDIForm--MDIForm1
--MDIClient
----ThunderFormDC--Form1子窗体1
----ThunderFormDC--Form2子窗体2
--ThunderPictureBoxDCMDI中 的pictureBox 如果硬要将子窗体放到上面 ,只能是
PrivateDeclare Function SetParent Lib "user32" (ByVal hWndChild As Long,ByVal hWndNewParent As Long) As Long
SetParentForm1.hWnd,MDIForm1.hWnd
这样就破坏了 Form1的消息循环,程序可以运行,但窗体效果就不对了
MDI主窗体中显示一个背景,是MDI自绘背景 ,图片应该绘制在MDIClient上,而不能加载pictureBox ,这个要通过回调才能实现VB MDI 显示背景图
PrivateSub MDIForm_Load()
Me.Picture= LoadPicture("c:\1.bmp")
EndSub
只能显示在左上角