注册 登录
编程论坛 VB6论坛

vb读取access记录的问题

随风舞 发布于 2013-04-20 13:44, 920 次点击
access的BWGS表里有两列,一列是“DH”,另一列是“NR”。添加text1、text2、command1 。text1中输入DH某列内容,,单击command1,text2显示 NR对应的结果。
Dim rs As New ADODB.Recordset
Dim connstr As String
Dim sqlstr As String

connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Database1.mdb"   
(这个链接设置有问题么?如果没问题,下面的select语句为什么不执行?)      
sqlstr = "select NR from BWGS where DH='" & Text1 & "'"
(这一步有疑问 我输入 print sqlstr,出来的不是查询的结果,而是"select NR from BWGS where DH='" FPL "'",为什么)
rs.Open sqlstr, conn, adOpenKeyset, adLockReadOnly
(vb判定的错误都在这一句)

Text2 = rs!NR
rs.Close
Set rs = Nothing
8 回复
#2
Artless2013-04-20 13:50
没见到有链接代码
#3
随风舞2013-04-20 13:56
回复 2楼 Artless
connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\Database1.mdb"
这句话不是么?
#4
lowxiong2013-04-20 14:05
没有conn,数据库未打开,根据你的意思,大概是下面的代码
'********************复制下面的代码*********************
dim conn  As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim connstr As String
Dim sqlstr As String
connstr ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Database1.mdb"   '设置数据库连接的SQL语句
conn.open connstr   '执行SQL,打开数据库
if conn.state<>1 then
  msgbox "数据库未打开,请检查数据库名和所在目录是否正确"
  end
endif
sqlstr = "select NR from BWGS where DH='" & Text1 & "'"   '设置打开数据表的SQL语句字符串
rs.Open sqlstr, conn, adOpenKeyset, adLockReadOnly
if rs.state<>1 then
  msgbox "数据表记录集未打开,请检查数据库"
  end
end if
if not rs.eof then text1=rs.Fields("nr")
rs.Close
conn.close






[ 本帖最后由 lowxiong 于 2013-4-20 14:10 编辑 ]
#5
随风舞2013-04-20 14:15
回复 4楼 lowxiong
泪流满面啊,太感谢了。
刚开始我自学mysql,还是跟cmd窗口一样的那种,学mysql用了1个多月;学mysql语句、建库、数据导入,最后。。。。。
mysql建立的数据库用vb找不到,作废;
又重新学access,还是链接搞不通,已经盯着电脑看了四五天了。
无以言谢啊!
#6
mpy20032013-04-20 19:14
回复 楼主 随风舞
你只设置了语句,并没有打开数据库,所以得到的不是你想要的
rs.open sqlstr,connstr,1,1
Print rs.Fields("NR")

[ 本帖最后由 mpy2003 于 2013-4-20 19:21 编辑 ]
#7
随风舞2013-04-22 18:42
回复 6楼 mpy2003
嗯,谢谢啊,我看懂了。
#8
hyhhd2013-04-23 16:42
关键缺“conn.open connstr”这句。
#9
wxflw2013-04-23 20:54
这句是不是错了?text1要不要改成text1.text?

sqlstr = "select NR from BWGS where DH='" & Text1 & "'"
1