您的位置:程序门 -> vb -> 基础类



添加数据后,新纪录不能显示,急!!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


添加数据后,新纪录不能显示,急!!!
发表于:2007-05-26 11:47:38 楼主
add11窗体添加完数据后,datashow中的数据不能更新,必须要把程序全部的关闭后,再次打开才能显示出刚刚的数据,为什么会这样应该怎么解决?我刚刚开始学vb,有很多不懂的地方,还请各位多多帮忙了。

datashow:

private   sub   loadcontrol(lpage   as   long)

if   lcurrentpage   =   1   then
cmdprevious.enabled   =   false
first.enabled   =   false
end   if
if   lcurrentpage   <   adoprimaryrs.pagecount   and   lcurrentpage   <>   1   then
cmdprevious.enabled   =   true
first.enabled   =   true
cmdnext.enabled   =   true
last.enabled   =   true
  adoprimaryrs.absolutepage   =   lcurrentpage
end   if
if   lcurrentpage   =   adoprimaryrs.pagecount   then
lpage   =   adoprimaryrs.absolutepage
  adoprimaryrs.absolutepage   =   adoprimaryrs.pagecount
cmdnext.enabled   =   false
last.enabled   =   false
  lpage   =   adoprimaryrs.pagecount
end   if

  '定义另一个记录集

dim   objrs   as   new   adodb.recordset

  '添加字段名称

for   lcount   =   0   to   adoprimaryrs.fields.count   -   1

  objrs.fields.append   adoprimaryrs.fields(lcount).name,   advarchar,   adoprimaryrs.fields(lcount).definedsize

  next

  '打开记录集

objrs.open

  '将指定记录数循环添加到objrs中
 

  for   lcount   =   1   to   npagesize
if   not   adoprimaryrs.eof   then
objrs.addnew
  objrs!编号   =   adoprimaryrs!编号   &   " "
  objrs!姓名   =   adoprimaryrs!姓名   &   " "
  objrs!密码   =   adoprimaryrs!密码   &   " "
  objrs!经验值   =   adoprimaryrs!经验值   &   " "
  adoprimaryrs.movenext
else
adoprimaryrs.movefirst
exit   for
end   if
  next
set   datagrid1.datasource   =   objrs


add11:
dim   conn   as   connection
dim   rs   as   recordset
dim   sql   as   string
dim   db   as   string

private   sub   command1_click()

rs.addnew
rs!姓名   =   t1.text
rs!密码   =   t2.text
rs!经验值   =   t3.text
rs.update
load   datashow
datashow.refresh
datashow.show
t   =   msgbox( "提交成功! ",   ,   "标题 ")
end   sub

private   sub   form_load()

set   conn   =   new   connection
set   rs   =   new   recordset
db   =   app.path   +   "\net1.mdb "
sql   =   "select   *   from   ask "
conn.open   "provider=microsoft.jet.oledb.4.0;data   source= "   &   db   &   "; "
rs.open   sql,   conn,   1,   3
end   sub
发表于:2007-05-26 14:11:361楼 得分:0
你添加完数据后,有没有把记录重新刷新显示一下啊???
发表于:2007-05-26 14:43:182楼 得分:0
是啊,datashow.refresh就行了,要加在添加完成后
发表于:2007-05-26 14:58:553楼 得分:0

加上了,可还是不行啊
load   datashow
datashow.refresh
datashow.show

发表于:2007-05-26 22:01:034楼 得分:0
objrs!经验值   =   adoprimaryrs!经验值   &   " "

这里加入一句:objrs.update

  adoprimaryrs.movenext

发表于:2007-05-28 08:49:515楼 得分:0
不行啊,还是不能更新,小弟真的要跪求各位大哥了,拉兄弟一把吧!!
发表于:2007-05-28 09:41:546楼 得分:0
objrs!经验值   =   adoprimaryrs!经验值   &   " "

这里加入一句:
objrs.update

adoprimaryrs.movefirst
发表于:2007-05-28 09:50:437楼 得分:0
我已经加上了确实是不行啊,我可以把全部代码都贴出来,或者谁给个邮箱我把程序发给他
发表于:2007-05-28 15:53:098楼 得分:0
难道就没有人能给我解决问题了吗,难道就这么难吗!!!!!??
发表于:2007-05-28 19:04:059楼 得分:0
在这个过程中加入
private   sub   command1_click()
rs.addnew
rs!姓名   =   t1.text
rs!密码   =   t2.text
rs!经验值   =   t3.text
rs.update
msgbox   "提交成功! ",   ,   "标题 "
datashow.loadcontrol(1) '-------参数你自己搞定
datashow.show
end   sub
发表于:2007-05-29 08:43:5810楼 得分:0
还是不行啊,难道已经成了顽症!!??
发表于:2007-05-29 10:04:4711楼 得分:0
不要着急   我以前也遇到这样的问题  

现在你需要做的就是重新读取数据源

就是在rs关闭之后,再次连接

或者直接设置一个刷新的按键,对其写一个函数,重新读取数据源
发表于:2007-05-29 14:07:4812楼 得分:0
那个函数应该怎么写啊,不过你的方法感觉起来应该是正确的


快速检索

最新资讯
热门点击