学生成绩管理系统——用户登录模块之添加模块

添加用户

问题

  • 问题1:fields.count方法,值一直为1导致出现添加数据与主键重复的情况
    • fields表示的是字段名数量,要表示数据的数量要使用recordSet的recordCount方法
  • 问题2:recordSet中的recordCount方法返回值为 -1
    • 将recordSet的cursorLocation设置为adUserClient
  • 问题3:Bof或Eof中有一个是“真”
  • 在这里插入图片描述
    • 原因:For i = 0 To objRs.RecordCount - 1objRs.RecordCount没有 - 1导致objRs的索引越界,导致出现此问题

修改

  • 修改1:增加判断表中是否有数据的操作

基本实现

首先判断输入的两遍数据是否一致,如果不一致要求进行修改

If txtPassWord <> txtPassWordAgain Then         '当输入密码不一致时
        MsgBox "您输入的密码不一致请重新输入!", vbCritical         '给出警告框您输入的密码不一致
        txtPassWord.Text = ""       '密码与确认密码框重置
        txtPassWordAgain.Text = ""

调用方法来建立连接,并对连接情况进行判断

Set objCn = connectionLinked()      '调用连接connectionLinked方法建立连接
        '判断连接情况
        If objCn.State = adStateClosed Then
            MsgBox "连接失败", vbCritical, "数据库连接情况"
        End If

判断输入数据与表中数据是否重复

  • 其中这一部分我收获了关于fields方法的一些知识,fields主要涉及的方法有.value方法
sqlSelect = "select part_name from partuser"        '编写查询语句
        Set objRs = recordSetConnect(sqlSelect, objCn)      '打开recordSet对象
        For i = 0 To objRs.RecordCount - 1
            If txtUserName.Text = Trim(objRs.Fields("part_name").Value) Then        '判断输入的用户名是否存在重复
                existValues = True
            Else
                If objRs.RecordCount > 1 Then       '当行数大于1时,移向下一条数据
                    objRs.MoveNext      '将当前记录位置向前移动
                End If
            End If
        Next

sql语句向partUser表中添加数据

If existValues Then
            MsgBox "你输入的用户名已经创建,请尝试登录", vbInformation, "提示"
        Else
            sqlInsert = "insert into partUser values('" & txtUserName.Text & "','" & txtPassWord.Text & "')"
            Set objRs = recordSetConnect(sqlInsert, objCn)
            MsgBox "添加成功"
        End If

在经历了重重的问题和困难后终于实现了第一个模块的建立,万事开头难,加油!!

猜你喜欢

转载自blog.csdn.net/missingtheway/article/details/104856637