# Re: 我的 SOURCE CODE 错在那里

Posted by 纪文和 on May 07, 1999 at 11:08:03:

In Reply to: 我的 SOURCE CODE 错在那里 posted by jeff on May 07, 1999 at 09:58:56:

: 我的 SOURCE CODE 错在那里

: 下列的SOURCE CODE 对吗?
: 尤其是 If trade("班级名称") = Text1 Then 这里可以这样使用吗?

: Private Sub Form_Load()
: Set dbs = OpenDatabase("c:\s\vbdb.mdb")
: Set trade = dbs.OpenRecordset("select 班级资料.班级名称 from 班级资料")
: trade.MoveFirst
: Do Until trade.EOF
: List1.AddItem trade(0)
: trade.MoveNext
: Loop
: trade.Close

: End Sub

:
: Private Sub Command2_Click()

: Text1.Text = List1.Text
: List1.RemoveItem List1.ListIndex

: For i = 0 To trade.RecordCount
: If trade("班级名称") = Text1 Then
: trade.Edit
: trade("班级名称") = ""
: trade.Update
: trade.MoveNext
: End If
: Next
: trade.Close
: End Sub

其实下次您最好顺便附上错误讯息, 否则可能有很多原因,
例如, 您这个例子, 我不知道真正错在什么地方, 但是我
发现几个可疑的地方如下:

1.For i = 0 To trade.RecordCount
应该是 For i = 0 To trade.RecordCount - 1

2.If trade("班级名称") = Text1 Then
最好改成 If trade("班级名称") & ""= Text1 Then
否则当 trade("班级名称") 为 Null 或许会有些问题

3.trade.MoveFirst 其实可以拿掉, 因为您刚产生
Recordset 时, 它是停在第一笔的

4.Text1.Text = List1.Text
List1.RemoveItem List1.ListIndex 最好改成

If List1.Listindex<>-1 then
Text1.Text = List1.Text
List1.RemoveItem List1.ListIndex
End If
否则当您没有先在 List1上选择时 RemoveItem 会错误

5.若您在 Command2 中还要使用 Trade 时, 那么在 Form_Load
应该不要将 Trade Close 掉

以上, 是以我自己平常写程式时的角度来 Debug 的, 希望能对您有所帮助

Follow Ups: