cbm666吧 关注:221贴子:876
  • 1回复贴,共1

关于在数据库中增加用户,并判断有没有重复的问题

只看楼主收藏回复


最近一直困扰在用户添加的问题中,如图所示是我的界面,删除功能和对已存在的数据进行修改已经实现了,但是添加和保存还不行
代码如下:
初始:
Private Sub Form_Load()
Frame2.Visible = True
Data1.DatabaseName = "管理界面.mdb"
Data1.RecordSource = "user"
Data1.Refresh '使用刷新的方法打开数据库
'Text5.DataSource = "Data1" '已经设在属性里了
'Text6.DataSource = "Data1" '已经设在属性里了
If Data1.Recordset.RecordCount = 0 Then
MsgBox "当前数据库无数据,请添加", vbOKOnly
Data1.Recordset.AddNew
End If
Text5.DataField = "UserName"
Text6.DataField = "Password"
Data1.Recordset.MoveLast
Label9.Caption = "当前记录:" & Data1.Recordset.AbsolutePosition + 1 & "/" & Data1.Recordset.RecordCount
Data1.Recordset.MoveFirst
增加新用户按钮代码:
Private Sub Command3_Click()
Data1.Recordset.AddNew
add = 1'标志我按过增加按钮
End Sub
保存、修改按钮代码:
Private Sub Command4_Click()
If Text5 = "" Then
MsgBox "请您输入测试员名称"
Text5.SetFocus
Else
If Data1.Recordset.Fields("username").Value = Text5.Text Then
k = 2
End If
If k = 2 Then
MsgBox "已存在该测试员,请另起名字" & k
Text5 = ""
Text5.SetFocus
k = 0
Else
Data1.Recordset.Update
Data1.Recordset.MoveLast
End If
k = 0
End If
End Sub
Private Sub Data1_Reposition()'当前记录的显示
Label9.Caption = "当前记录:" & Data1.Recordset.AbsolutePosition + 1 & "/" & Data1.Recordset.RecordCount
End Sub
Private Sub Data1_Validate(Action As Integer, Save As Integer)'点击过data1控件的按钮后
Dim mag, k
If Save = True Then
mag = MsgBox("要保存修改吗?", vbYesNo)
If mag = vbNo Then
Save = False
If (add = 1) Then'如果进行的是添加操作,就删除添加内容
Data1.Recordset.Delete
Data1.Recordset.MoveLast
add = 0
Else
Data1.UpdateControls '恢复原先内容
End If
Else
Command4_Click
End If
End If
End Sub
问题是:点击“增加新用户”按钮后,当前记录那边不变,在该按钮中的Data1.Recordset.AddNew 之后再添加
Data1.Recordset.Update
Data1.Recordset.MoveLast
这两句,可以使当前记录改变,但是是添加的空白行,编辑好数据保存时,判断不能仅仅用Data1.Recordset.Fields了,因为之后查找如果有重复就有两条数据了,这个用Data1.Recordset.Fields不知道能不能实现,或者该用select,具体的还要请教
其次,编辑好后,点击“保存、修改”按钮,添加进去的数据为空


1楼2012-04-24 15:44回复
    是不是这种功能写在数据库端,用usp的返回值来判定会比较好?


    IP属地:上海2楼2012-08-04 08:26
    回复