当前位置:编程学习 > VB >>

在线等!请教问题,VB+Access,读取数据库表数据后返回的Recordset没有更新。多谢了,提分等

VB中添加了Datagrid,然后与ADO控件关联起来,写了下面的小程序,
第一次执行,查询jf1表所有数据,正常返回并在Datagrid展现了出来。
Private Sub Form_Load()

Dim conn As Connection 'conn为连接
Dim sql As String
Dim rs1 As Recordset

Set conn = CreateObject("adodb.connection")
conn.Open "provider=msdasql;database=jf1;data source=jf1" '打开数据源
sql = "select * from jf1"

Set rs1 = conn.Execute(sql)

Do While Not rs1.EOF
   For i = 0 To rs1.Fields.Count - 1
     Print rs1.Fields(i)           '输出jf1表中各字段
   Next i
rs1.MoveNext
Loop

rs1.Close
Set rs1 = Nothing
conn.Close
Set conn = Nothing

End Sub

可问题来了,之后我在sql中限定了where,按道理应该只返回一条记录,可无论怎么运行,怎么修改where限定,都还是全部返回记录(和第一次执行一样)甚至写where 0=1也一样返回全部,where没有生效,我的感觉是内存中的Recordset还是原来的,没有更新,请各位大拿们帮我看看是怎么回事?多谢了,提分等
Private Sub Form_Load()

Dim conn As Connection 'conn为连接
Dim sql As String
Dim rs1 As Recordset

Set conn = CreateObject("adodb.connection")
conn.Open "provider=msdasql;database=jf1;data source=jf1" '打开数据源
sql = "select * from jf1 T where T.id = 1 "

Set rs1 = conn.Execute(sql)

Do While Not rs1.EOF
   For i = 0 To rs1.Fields.Count - 1
     Print rs1.Fields(i)           '输出jf1表中各字段
   Next i
rs1.MoveNext
Loop

rs1.Close
Set rs1 = Nothing
conn.Close
Set conn = Nothing

End Sub


--------------------编程问答-------------------- 是不是你手动设置了ADO控件和数据库的关联? --------------------编程问答-------------------- sql = "select * from jf1 T where T.id = 1 "

这个T是否多余?
--------------------编程问答-------------------- to Veron_04 是不是你手动设置了ADO控件和数据库的关联?

是手动设置的 --------------------编程问答-------------------- 把那个T去掉,我觉得这个是多余的 --------------------编程问答-------------------- sql = "select * from jf1 where id = 1 "

试过了,不行。估计不是这里的问题

--------------------编程问答-------------------- 你的SQL构建的正确否?ID是什么类型的?需不需要添加单引号?等号旁边是否有多余的空格? --------------------编程问答-------------------- sql = "select * from jf1 where id =1"

--------------------编程问答-------------------- sql = "select * from jf1 where id=1"

--------------------编程问答-------------------- lz的问题和代码完全是风马牛不相及,
你的代码是在窗体上打印你的记录,但窗体加载的时候在窗体打印的东西是看不到的
你的问题又是在datagride里显示数据 --------------------编程问答-------------------- 哈哈哈,对的哈!我还没有看后免得代码,以为问题出在Sql上。楼主,佩服
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,