Private Sub 保存档案_Click()
On Error GoTo Err_保存档案_Click
Dim i As Integer
Dim STemp As String
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
STemp = "Select * From 学生档案"
Rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If IsNull(Me![学生ID]) = True Then
MsgBox "请输入“学生ID”,它不可以为空!", vbOKOnly, "输入“学生ID”"
Me![学生ID].SetFocus
Exit Sub
ElseIf IsNull(Me![学生姓名]) = True Then
MsgBox "请输入“学生姓名”,它不可以为空!", vbOKOnly, "输入“学生姓名”"
Me![学生姓名].SetFocus
Exit Sub
ElseIf IsNull(Me![班级ID]) = True Then
MsgBox "请输入“班级ID”,它不可以为空!", vbOKOnly, "输入“班级ID”"
Me![班级ID].SetFocus
Exit Sub
ElseIf IsNull(Me![生日]) = True Then
MsgBox "请输入“生日”,它不可以为空!", vbOKOnly, "输入“生日”"
Me![生日].SetFocus
Exit Sub
ElseIf IsNull(Me![手机号]) = True Then
MsgBox "请输入“手机号”,它不可以为空!", vbOKOnly, "输入“手机号”"
Me![手机号].SetFocus
Exit Sub
ElseIf IsNull(Me![学生性别]) = True Then
MsgBox "请输入“学生性别”,它不可以为空!", vbOKOnly, "输入“学生性别”"
Me![学生性别].SetFocus
Exit Sub
Else
If Rs.RecordCount > 0 Then
Rs.MoveFirst
For i = 1 To Rs.RecordCount
If Rs("学生ID") = Me![学生ID] Then
MsgBox "该编号的学生已经存在,请核实!", vbCritical, "记录已经存在"
Exit Sub
Else
Rs.MoveNext
End If
Next i
End If
End If
STemp = "INSERT INTO 学生档案"
STemp = STemp & "(学生ID,学生姓名,班级ID,生日,手机号,学生性别,备注)"
STemp = STemp & "VALUES ( '" & Me![学生ID] & "','" & Me![学生姓名] & "','" & Me![班级ID] & "','" & Me![生日] & "','" & Me![手机号] & "','" & Me![学生性别] & "','" & Me![备注] & "')"
DoCmd.RunSQL STemp
Me![学生档案管理 子窗体].Requery
MsgBox "学生档案已经保存完成!", vbOKOnly, "保存完成"
Set Rs = Nothing
Exit_保存档案_Click:
Set Rs = Nothing
Exit Sub
Err_保存档案_Click:
MsgBox Err.Description
Resume Exit_保存档案_Click
End Sub
请问各位大大,为什么这段代码运行会出现“查询值的数目与目标字段中的数目不同”?
谢谢~~~
On Error GoTo Err_保存档案_Click
Dim i As Integer
Dim STemp As String
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
STemp = "Select * From 学生档案"
Rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If IsNull(Me![学生ID]) = True Then
MsgBox "请输入“学生ID”,它不可以为空!", vbOKOnly, "输入“学生ID”"
Me![学生ID].SetFocus
Exit Sub
ElseIf IsNull(Me![学生姓名]) = True Then
MsgBox "请输入“学生姓名”,它不可以为空!", vbOKOnly, "输入“学生姓名”"
Me![学生姓名].SetFocus
Exit Sub
ElseIf IsNull(Me![班级ID]) = True Then
MsgBox "请输入“班级ID”,它不可以为空!", vbOKOnly, "输入“班级ID”"
Me![班级ID].SetFocus
Exit Sub
ElseIf IsNull(Me![生日]) = True Then
MsgBox "请输入“生日”,它不可以为空!", vbOKOnly, "输入“生日”"
Me![生日].SetFocus
Exit Sub
ElseIf IsNull(Me![手机号]) = True Then
MsgBox "请输入“手机号”,它不可以为空!", vbOKOnly, "输入“手机号”"
Me![手机号].SetFocus
Exit Sub
ElseIf IsNull(Me![学生性别]) = True Then
MsgBox "请输入“学生性别”,它不可以为空!", vbOKOnly, "输入“学生性别”"
Me![学生性别].SetFocus
Exit Sub
Else
If Rs.RecordCount > 0 Then
Rs.MoveFirst
For i = 1 To Rs.RecordCount
If Rs("学生ID") = Me![学生ID] Then
MsgBox "该编号的学生已经存在,请核实!", vbCritical, "记录已经存在"
Exit Sub
Else
Rs.MoveNext
End If
Next i
End If
End If
STemp = "INSERT INTO 学生档案"
STemp = STemp & "(学生ID,学生姓名,班级ID,生日,手机号,学生性别,备注)"
STemp = STemp & "VALUES ( '" & Me![学生ID] & "','" & Me![学生姓名] & "','" & Me![班级ID] & "','" & Me![生日] & "','" & Me![手机号] & "','" & Me![学生性别] & "','" & Me![备注] & "')"
DoCmd.RunSQL STemp
Me![学生档案管理 子窗体].Requery
MsgBox "学生档案已经保存完成!", vbOKOnly, "保存完成"
Set Rs = Nothing
Exit_保存档案_Click:
Set Rs = Nothing
Exit Sub
Err_保存档案_Click:
MsgBox Err.Description
Resume Exit_保存档案_Click
End Sub
请问各位大大,为什么这段代码运行会出现“查询值的数目与目标字段中的数目不同”?
谢谢~~~
RunSQL Requery 是自己的函数吧 怎么跟我用的vb不大一样
STemp = "INSERT INTO 学生档案"
STemp = STemp & "(学生ID,学生姓名,班级ID,生日,手机号,学生性别,备注)这里空格"
STemp = STemp & "或者这里VALUES ( '" & Me![学生ID] & "','" & Me![学生姓名] & "','" & Me![班级ID] & "','" & Me![生日] & "','" & Me![手机号] & "','" & Me![学生性别] & "','" & Me![备注] & "')"