包你没有遇到过的添加记录错误现象!

我在一个text控件的bookcode_KeyDown事件调用(用回车键调用)一个函数insertdata来添加一个记录到selltem表上:

Private Sub Form_Load() '打开窗体就调用ShowTitle,ShowData函数
ShowTitle
ShowData

End Sub

insertdata的代码是:
Private Sub insertdata()
Dim bookcode2, bookname2 As String
Dim bookprice2, sellprice2, inprice2 As Integer
txtSQL = "select bookcode,bookname,bigclass,bookprice,sellprice,hits,stock,inprice from bookinfo where bookcode='" & Trim(bookcode.Text) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If Not mrc.EOF Then
bookcode2 = mrc.Fields(0)
bookname2 = mrc.Fields(1)
bookprice2 = mrc.Fields(3)
sellprice2 = mrc.Fields(4)
inprice2 = mrc.Fields(7)
mrc.Close
'往销售临时表添加记录
txtSQL = "select * from selltem"
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.AddNew
mrc.Fields(1) = bookcode2
mrc.Fields(2) = bookname2
mrc.Fields(3) = bookprice2
mrc.Fields(4) = sellprice2
mrc.Fields(5) = inprice2
mrc.Update
mrc.Close
Else
MsgBox "该书还没有入库!", vbOKOnly + vbExclamation, "警告"
End If
ShowData '调用ShowData函数
bookcode.Text = ""
End Sub

其中ShowData函数是:
Private Sub ShowData()
Dim i As Integer
txtSQL = "select bookcode,bookname,bookprice,sellprice from selltem order by id desc"
Set mrc = ExecuteSQL(txtSQL, MsgText)
With msgList
.Rows = 1
Do While Not mrc.EOF
.Rows = .Rows + 1
For i = 1 To mrc.Fields.Count
.TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1)
Next
mrc.MoveNext
Loop
End With
mrc.Close
bookcode.Text = ""
End Sub

这样可以把记录成功添加到表selltem里面,不过在显示数据方面就出现了问题,
情况如下:
1.除了刚添加到表里面的记录不能显示外,其他记录都能在控件msgList显示.
2.当再按一下回车键之后,就弹出MsgBox窗口,确定之后,刚添到表的那个记录才显示出来!
3.重新打开窗体,运行Form_Load(),刚添到表的那个记录页可以显示出来!

问题就是,为什么数据不能在控件msgList同步更新!

想了一整天了,还是想不出来,所以来这找高手了,请大家指导指导!!

[2025 byte] By [liuchiming-赚钱养老婆!] at [2008-5-29]
# 1
樓上的你的 showdata 的 sub中間

Do While Not mrc.EOF
.Rows = .Rows + 1
For i = 1 To mrc.Fields.Count
.TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1)
Next
mrc.MoveNext
Loop
這個地方有問題噢

我懶得看了,你把數據庫導 access中,偶幫你看看

daisy8675@sina.com
daisy8675-莫依沉迷 at 2007-10-21 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 2
单步跟踪试一下

最好是在记录添加后,在刷新数据时检查一下 Set mrc = ExecuteSQL(txtSQL, MsgText)

所产生的mrc.recordcount 的数目是否增加!
ukyoxh-我来学习 at 2007-10-21 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 3
If Not mrc.EOF Then
bookcode2 = mrc.Fields(0)
bookname2 = mrc.Fields(1)
bookprice2 = mrc.Fields(3)
sellprice2 = mrc.Fields(4)
inprice2 = mrc.Fields(7)
mrc.Close
你这个有问题啊,不懂.
tangxiaosan001-阿三 at 2007-10-21 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...
# 4
你再检查一下语句的顺序!

如:msgbox 是在添加记录之前显示,还是之后显示!

包你豁然开朗!
mdk89-悟峰 at 2007-10-21 > top of Msdn China Tech,visual basic,数据库(包含打印,安装,报表)...