Office中国论坛/Access中国论坛

标题: 老师说今天必须交作业了~错误始终不能解决,向各位达人救命了~~ [打印本页]

作者: 古月风    时间: 2006-6-13 22:51
标题: 老师说今天必须交作业了~错误始终不能解决,向各位达人救命了~~
老师布置的作业今天必须交了,我做的是个网上销售系统,可是还有点问题,可是..我始终搞不定啊,特向各位达人求救!~~~~

此段代码,我预想的功能是 选择了 文本框 list6 中的选项, 再单击 命令按钮 command11 , 加入一个购物篮表中,再由购物篮中的数据,传递, 显示在 文本框 List9 上,.   当我单击 command11时,

系统会出现错误提示: 运行错误 '-2147467259 (80004005)'; 索引或主键字不能包含一个空 (Null) 值,调试后,错误指在了 CurrentProject.Connection.Execute strsql  这一行!

恳请各位大人务必帮帮忙啊~~~~~~~5555555555555





Private Sub Command11_Click()

        If IsNull(Me.List6) Then
           MsgBox "请先选择你要购买的零件!"
        Else
            Dim strsql As String, strpl As String
            strsql = "INSERT INTO 购物篮(零件号,供应商号,数量) VALUES ('" & Trim(Me.List6.Column(0)) & " ','" & Trim(Me.List6.Column(1)) & " ',1);"
            CurrentProject.Connection.Execute strsql
            
            strpl = "select 零件号,供应商号,供应商姓名,供应量,单价,供应商状态  FROM 供应 ,购物篮 where 供应.零件号=购物篮.零件号 and 供应.供应商号=购物篮.供应商号 ;"
            Me.List9.RowSource = strpl
            Me.List9.ColumnCount = 6
            Me.List9.ColumnHeads = True
            Me.List9.ColumnWidths = "750;900;800;800;750;800"
            Me.List9.Requery
           
            Me.Refresh
        End If
End Sub

作者: 古月风    时间: 2006-6-13 22:52
各位高手行行好,帮帮在下吧~~~~~~~~555555
作者: wuaza    时间: 2006-6-14 00:34
你的列表框list6的零件号列有空值。
作者: 古月风    时间: 2006-6-14 04:54
呵呵,谢谢了哈~~~再问下~~

            Dim strsql As String
            strsql = "delete from 购物篮 where 零件号='" & Trim(Me.List4.Column(0)) & "'"
            CurrentProject.Connection.Execute strsql



是什么意思啊,特别是 Column(0) 是什么意思,和Column(1) 有区别呢~~?



再次谢谢~~~~~~~~~~
作者: wuaza    时间: 2006-6-14 05:07
这些代码难道不是你自己写出来的?

Column(0) 代表列表框的第一列。Column(1)代表第二列。
作者: 古月风    时间: 2006-6-14 05:29
是到是,不过COPY了一点老师的....代码~~

呵呵~~偶没学过 VBA~~可是还是要报错啊~~~郁闷死了~~~[em06]

你能不能帮我调试下哦~~~ 大哥~  @_@...


作者: andymark    时间: 2006-6-14 05:51
以下是引用古月风在2006-6-13 21:29:00的发言:


是到是,不过COPY了一点老师的....代码~~

呵呵~~偶没学过 VBA~~可是还是要报错啊~~~郁闷死了~~~[em06]

你能不能帮我调试下哦~~~ 大哥~  @_@...



    叫别人调试,最好上传例子
作者: 古月风    时间: 2006-6-14 22:08
呵呵,不好意思哈,因为我们学校晚上11点要断网,所以没能来得及传上来,望谅解哈~~~

等我再完善下了,再传上来让大家帮忙看看哈~~谢谢~~~
作者: 古月风    时间: 2006-6-15 00:16
如果要取组合框的某一列的值应该怎么办哦?是这样吗? 比如要把组合框里取第一列到一个列表框,

代码如下 :  Private Sub Command14_Click()
            If IsNull(Me.Combo1.Column(0)) Then
            MsgBox "请先输入你要购买的零件!"
             Else
             Dim str1 As String
      str1 = "SELECT 零件号,供应商号,供应商姓名,供应量,单价,供应商状态FROM 供应  where 零件名='" & Trim(Me.Combo1.Column(0)) & "';"
      Me.List6.RowSource = str1
      Me.List6.ColumnCount = 6
      Me.List6.ColumnHeads = True
      Me.List6.ColumnWidths = "750;900;800;800;750;800"
      Me.List6.Requery
  
  
      Me.Refresh
   End If
End Sub





请大家看看出了什么问题,总是要报错~~~~~郁闷死老~~~~~~~
作者: fan0217    时间: 2006-6-15 03:38
以下是引用古月风在2006-6-14 16:16:00的发言:


如果要取组合框的某一列的值应该怎么办哦?是这样吗? 比如要把组合框里取第一列到一个列表框,

代码如下 :  Private Sub Command14_Click()
            If IsNull(Me.Combo1.Column(0)) Then
            MsgBox "请先输入你要购买的零件!"
             Else
             Dim str1 As String
      str1 = "SELECT 零件号,供应商号,供应商姓名,供应量,单价,供应商状态FROM 供应  where 零件名='" & Trim(Me.Combo1.Column(0)) & "';"
      Me.List6.RowSource = str1
      Me.List6.ColumnCount = 6
      Me.List6.ColumnHeads = True
      Me.List6.ColumnWidths = "750;900;800;800;750;800"
      Me.List6.Requery
  
  
      Me.Refresh
   End If
End Sub




请大家看看出了什么问题,总是要报错~~~~~郁闷死老~~~~~~~

报什么错??




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3