无法将NULL值插入列'cmyName',表
'DmpManager.dbo.stock';该列不允许空值.INSERT失败气死我了为什么啊...

解决方案 »

  1.   

    Dim rs As New ADODB.Recordset
        Dim str As String
        Dim i As Integer
        MSF.Rows = 1
        MSF.Cols = 7
        MSF.ColAlignment(i) = 4
        MSF.ColWidth(6) = 1000
        MSF.TextMatrix(0, 0) = "序号"
        MSF.TextMatrix(0, 1) = "商品名称"
        MSF.TextMatrix(0, 2) = "用户名称"
        MSF.TextMatrix(0, 3) = "商品单价"
        MSF.TextMatrix(0, 4) = "商品数量"
        MSF.TextMatrix(0, 5) = "商品单位"
        MSF.TextMatrix(0, 6) = "入库时间"
        str = "select *from Stock "
        rs.Open str, Con
            Do While Not rs.EOF
                MSF.AddItem ""
                MSF.TextMatrix(i + 1, 0) = i + 1
                MSF.TextMatrix(i + 1, 1) = GetCmyName(rs.Fields("cmyID"))
                MSF.TextMatrix(i + 1, 2) = getUserName(rs.Fields("userID"))
                MSF.TextMatrix(i + 1, 3) = rs.Fields("stockPri")
                MSF.TextMatrix(i + 1, 4) = rs.Fields("stockNum")
                MSF.TextMatrix(i + 1, 5) = rs.Fields("stockBal")
                MSF.TextMatrix(i + 1, 6) = rs.Fields("stockData")
                rs.MoveNext
                i = i + 1
            Loop
        rs.Close
      

  2.   

    Private Sub Tb1_ButtonClick(ByVal Button As MSComctlLib.Button)
        Static s As Integer
        Select Case Button.Key
            Case "添加"
                status False
                txtPri.Text = ""
                txtNum.Text = ""
                txtSty.Text = ""
                s = 1
            Case "修改"
                status False
                s = 2
            Case "删除"
                If MsgBox("是否要删除该条记录?", vbQuestion + vbYesNo) = vbYes Then
                    str = "select *from Stock where cmyID='" & GetCmyID(cboCmyName.Text) & "'"
                    rs.Open str, Con, adOpenDynamic, adLockOptimistic                rs.Delete
                    rs.Close
                    Call Display
                End If
                str = "select * from Cmy where cmyID='" & GetCmyID(cboCmyName.Text) & "'"
                rs.Open str, Con, adOpenDynamic, adLockOptimistic
                    rs.Fields("CmyBal") = rs.Fields("CmyBal").Value - txtNum.Text
                    rs.Update
                rs.Close
                cboCmyName.Clear
                cboUserName.Clear
                Call Display
            Case "保存"
                status True
                If s = 1 Then
                    s = 0
                    str = "select *from Stock"
                    rs.Open str, Con, adOpenDynamic, adLockOptimistic
                    rs.AddNew
                        rs.Fields("cmyID") = GetCmyStockID(cboCmyName.Text)
                        rs.Fields("userID") = getUserID(cboUserName.Text)
                        rs.Fields("stockPri") = txtPri.Text
                        rs.Fields("stockNum") = txtNum.Text
                        rs.Fields("stockBal") = txtSty.Text
                        rs.Fields("stockData") = dtpDate.Value
                        rs.Update
                    rs.Close                str = "select * from Cmy where cmyID='" & GetCmyID(cboCmyName.Text) & "'"
                    rs.Open str, Con, adOpenDynamic, adLockOptimistic
                        rs.Fields("CmyBal") = rs.Fields("CmyBal").Value + txtNum.Text
                        rs.Update
                    rs.Close
                    cboCmyName.Clear
                    cboUserName.Clear
                    txtSty.Text = ""
                    txtNum.Text = ""
                    txtPri.Text = ""
                    Call Display
                ElseIf s = 2 Then
                    s = 0
                    str = "select *from Stock where cmyID='" & GetCmyID(cboCmyName.Text) & "'"
                    rs.Open str, Con, adOpenDynamic, adLockOptimistic
                        rs.Fields("cmyID") = GetCmyID(cboCmyName.Text)
                        rs.Fields("userID") = getUserID(cboUserName.Text)
                        rs.Fields("stockPri") = txtPri.Text
                        rs.Fields("stockNum") = txtNum.Text
                        rs.Fields("stockBal") = txtSty.Text
                        rs.Fields("stockData") = dtpDate.Value
                        rs.Update
                    rs.Close
                    Call Display
                End If
            Case "取消"
                status True
                Call MSF_Click
            Case "关闭"
                Unload Me
        End Select
                        
    End Sub
      

  3.   

    那里出的错?
    GetCmyName与getUserName都是干啥的?
      

  4.   

    rs.AddNew
                        rs.Fields("cmyID") = GetCmyStockID(cboCmyName.Text)
                        rs.Fields("userID") = getUserID(cboUserName.Text)
                        rs.Fields("stockPri") = txtPri.Text
                        rs.Fields("stockNum") = txtNum.Text
                        rs.Fields("stockBal") = txtSty.Text
                        rs.Fields("stockData") = dtpDate.Value
                        rs.Update
                    rs.Close
    哪里有向CMYNAME写入值的地方啊,你没写入自然认为是NULL了
      

  5.   

    哈..成功了...汗..之前找了半天也没找着..谢谢 CPLiu(老了)