注册 登录
编程论坛 VB6论坛

请教各位老师:VB6.0向access添加记录时,如何避免用户名重复?

YWG202006 发布于 2020-07-13 14:51, 2592 次点击
Private Sub Command1_Click()
On Error Resume Next
Call SJK(db)
If Text1 <> "" Then
Set RS = New ADODB.Recordset
    '添加记录
    strSQL = "select * from 用户表"
    RS.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
    RS.AddNew
       RS!编号 = Text1.Text
       RS!用户名 = Text2.Text
       RS!密码 = Text3.Text
       RS!权限 = Text4.Text
       'RS!数量 = Text5.Text
       'RS!单价 = Text6.Text
       'Text7.Text = Text5.Text * Text6.Text
       'RS!金额 = Text7.Text
     Text1.Text = ""
     Text2.Text = ""
     Text3.Text = ""
     Text4.Text = ""
     'Text5.Text = ""
     'Text6.Text = ""
   
     MsgBox "添加成功"
    RS.Update
    RS.Close
    cnn.Close
    Set RS = Nothing
  
End If
End Sub
9 回复
#2
ZHRXJR2020-07-13 20:24
应该比较简单,下面是程序代码:
程序代码:

Dim db As New ADODB.Connection, RS As New ADODB.Recordset

Private Sub Command1_Click()
If Text1.Text <> "" Then
    MsgBox "你没有填写编号,请填写!", 16, "错误!"
    Exit Sub
End If
If Text2.Text <> "" Then
    MsgBox "你没有填写用户名,请填写!", 16, "错误!"
    Exit Sub
End If
If Text3.Text <> "" Then
    MsgBox "你没有填写密码,请填写!", 16, "错误!"
    Exit Sub
End If
If Text4.Text <> "" Then
    MsgBox "你没有填写权限,请填写!", 16, "错误!"
    Exit Sub
End If
Call SJK(db)
    '添加记录
    strSQL = "select * from 用户表 Where 用户名 ='" & Text2.Text & "'"
    RS.Open strSQL, db, 2, 2   'Call SJK(db),因此必须使用 db 对象,而不能使用 cnn 对象,下面所有 cnn 均修改为 db
    If Not RS.EOF Then   '判断记录存在与否,如果存在,退出过程,不能存储
    RS.Close
    Set RS = Nothing
    db.Close
    Set db = Nothing
    MsgBox "对不起!这个用户名已经存在,请使用不同的用户名!", 16, "错误!"
    Exit Sub
    End If    '不存在执行下面的语句
    RS.Close
    Set RS = Nothing
    strSQL = "select * from 用户表"
    RS.Open strSQL, db, 3, 2
    RS.AddNew
       RS!编号 = Text1.Text
       RS!用户名 = Text2.Text
       RS!密码 = Text3.Text
       RS!权限 = Text4.Text
    RS.Update
    RS.Close
    Set RS = Nothing
    db.Close
    Set db = Nothing
    MsgBox "新用户已经添加成功!", 64, "成功添加!"
     Text1.Text = ""
     Text2.Text = ""
     Text3.Text = ""
     Text4.Text = ""
End Sub
#3
xxwyyf0072020-07-13 20:30
这样试一下,先判断有没有,若有则退出,没有则新增
strSQL =select * from [用户表] where [用户名]='" & Text1(2) & "'"
RS.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
If rs.RecordCount > 0 Then
    MsgBox "用户名已存在,请修改"    '若已有,则退出
......                               ’没有,则增加


#4
YWG2020062020-07-14 08:01
回复 2楼 ZHRXJR
谢谢 2楼 ZHRXJR 老师的耐心解答。非常感谢。。。。
#5
YWG2020062020-07-14 08:01
回复 3楼 xxwyyf007
谢谢你的帮助。。。
#6
YWG2020062020-07-14 09:33
回复 2楼 ZHRXJR
只有本站会员才能查看附件,请 登录
#7
YWG2020062020-07-15 07:47
问题没有解决,也结贴了。
#8
cwa99582020-07-15 08:15
报错,先确定你的数据库有没有正常打开。
#9
ZHRXJR2020-07-17 00:44
回复 6楼 YWG202006
那句语句出错了,什么错误,说清楚?
#10
YWG2020062020-07-18 10:11
回复 8楼 cwa9958
已另外请朋友解决了,谢谢
1