You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在指定窗体DataGrid中仅显示登录用户所需数据库信息

解决登录后DataGrid仅显示当前用户指定信息的问题

看你的现有代码,主要有两个核心问题导致没法实现需求:一是登录成功后没有持久化当前用户的身份,导致另一个窗体拿不到正确的用户名;二是用了select *会返回所有字段,没法做到只展示所需信息。我给你一步步调整:


第一步:在登录窗体保存当前登录用户的信息

先在登录窗体的通用声明区(代码窗口最顶部,所有过程外面)定义一个全局变量,用来存当前登录的用户名:

Public CurrentUserName As String

然后修改登录按钮的代码,在登录成功时把用户名存入这个变量:

Private Sub loginbtn_Click()
    Adodc1.RecordSource = "select * from STUDENTINFO where Name = '" + txtuser.Text + "'"
    Adodc1.Refresh
    
    If (Adodc1.Recordset.EOF = False) Then
        If (txtpass.Text = Adodc1.Recordset.Fields("ID")) Then
            MsgBox "Login Succeeded!"
            ' 保存当前登录的用户名到全局变量
            CurrentUserName = txtuser.Text
            ' 打开学生信息窗体
            StudentInfo.Show
        Else
            MsgBox "Invalid Password!", vbCritical, "Login"
            txtuser.Text = ""
            txtpass.Text = ""
            txtuser.SetFocus
        End If
    Else
        MsgBox "Invalid Username or Password!", vbCritical, "Login"
        txtuser.Text = ""
        txtpass.Text = ""
        txtuser.SetFocus
    End If
End Sub

第二步:修改StudentInfo窗体,加载指定字段的用户信息

你原来的DataGrid点击事件逻辑不太合理——用户打开窗体应该直接看到自己的信息,不用点击表格。我们把逻辑移到Form_Load事件里,并且明确指定要显示的字段(比如你需要姓名、学号、专业,就把这些字段列出来,不要用select *):

Private Sub Form_Load()
    ' 只查询你需要的字段,把Name、ID、Major换成你实际要展示的字段
    Adodc1.RecordSource = "SELECT Name, ID, Major FROM STUDENTINFO WHERE Name = '" + LoginForm.CurrentUserName + "'"
    Adodc1.Refresh
    
    ' 可选:给DataGrid的列设置友好的标题
    DataGrid1.Columns(0).Caption = "姓名"
    DataGrid1.Columns(1).Caption = "学号"
    DataGrid1.Columns(2).Caption = "专业"
End Sub

另外,你原来的DataGrid_Click事件可以删掉,因为现在打开窗体就自动加载数据了。


为什么这么改?

  • 全局变量CurrentUserName能可靠传递登录用户的身份,避免依赖登录窗体的txtuser控件(毕竟登录成功后你清空了控件内容,而且窗体可能被隐藏)
  • 用SELECT 字段1,字段2代替SELECT *,能精准控制DataGrid显示的内容,完全符合“仅显示所需信息”的要求
  • 把数据加载逻辑放在Form_Load里,用户打开窗体就能看到自己的信息,体验更流畅

内容的提问来源于stack exchange,提问作者Iskandar Siraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:36:05