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
请问各位大大,为什么这段代码运行会出现“查询值的数目与目标字段中的数目不同”?
谢谢~~~

解决方案 »

  1.   

    这vb 
    RunSQL    Requery 是自己的函数吧 怎么跟我用的vb不大一样 
      

  2.   

    检查一下你的SQL语句,是不是语法有错误,导致insert的列数量和插入的不一致另外我猜你应该是access数据库,ID是自增字段,把ID字段去掉试试另外,你拼字符串的时候,好像少了空格
    STemp = "INSERT INTO 学生档案"
        STemp = STemp & "(学生ID,学生姓名,班级ID,生日,手机号,学生性别,备注)这里空格"
        STemp = STemp & "或者这里VALUES ( '" & Me![学生ID] & "','" & Me![学生姓名] & "','" & Me![班级ID] & "','" & Me![生日] & "','" & Me![手机号] & "','" & Me![学生性别] & "','" & Me![备注] & "')"