VB数据库代码问题

Adodc1.RecordSource="select进价from商品信息表where商品编号=select商品编号from销售信息表where票号='%"+Text1.... Adodc1.RecordSource = "select 进价 from 商品信息表 where 商品编号 =select 商品编号 from 销售信息表 where 票号 = '%" + Text1.Text + "%'
要先根据Text1得到销售信息表里的票号,再根据得到的票号从商品信息表得到进价,求正解!
Dim a As Integer
Dim B As Integer
Private Sub Command1_Click()
If Adodc1.Recordset.RecordCount > 0 And Adodc1.Recordset.RecordCount > 0 Then
a = Adodc1.Recordset.Fields("进价")
B = Adodc2.Recordset.Fields("应付")
Text2.Text = B - a
End If
End Sub
展开
 我来答
syx54
2013-06-09 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2732万
展开全部
子查询
在WHERE子句中包括一个形如SELECT – FROM – WHERE的查询块,此查询块称为子查询或嵌套查询,包含子查询的语句称为父查询或外部查询。嵌套查询可以将一系列简单查询构成复杂查询,增强查询能力。子查询的嵌套层次最多可达到255层,以层层嵌套的方式构造查询充分体现了SQL“结构化”的特点。嵌套查询在执行时由里向外处理,每个子查询是在上一级外部查询处理之前完成,父查询要用到子查询的结果。
注意:
1,当子查询的返回值只有一个时,可以使用比较运算符(=,>,<,>=,<=,!=)将父查询和子查询连接起来。
2,如果子查询的返回值不止一个,而是一个集合时,则不能直接使用比较运算符,可以在比较运算符和子查询之间插入ANY或ALL。

例如:
SELECT TNAME FROM T WHERE TNO = ANY (SELECT TNO FROM TC WHERE CNO =‘5')
你的问题的答案应该是:
Adodc1.RecordSource = "select 进价 from 商品信息表 where 商品编号 =Any (select 商品编号 from 销售信息表 where 票号 = '%" + Text1.Text + "%')

但是你这个语句的最后部分,似乎有错误?
票号 = '%" + Text1.Text + "%' 这个有问题?
票号是什么数据类型?
如果是文本,那应该是:
票号 = '" + Text1.Text + "'“
所以,整个代码应该是:
Adodc1.RecordSource = "select 进价 from 商品信息表 where 商品编号 =Any (select 商品编号 from 销售信息表 where 票号 = '" + Text1.Text + "'")

注意:最后的是两个双引号中间1个单引号。
更多追问追答
追问
a = Adodc1.Recordset.Fields("进价")调完后这句会出现3021,BOF或EOF中有一个是真,或者当前的记录已被删除,所需的操作要求一个当前的记录,但我数据库里确定是有这个数据的
追答
首先,上面一个问题解决了吗?问题一个一个来呀!!
百百和度度ok
2013-06-09 · TA获得超过228个赞
知道小有建树答主
回答量:153
采纳率:60%
帮助的人:43.8万
展开全部
Adodc1.RecordSource = "select 进价 from 商品信息表 where 商品编号 = (select top 1 商品编号 from 销售信息表 where 票号 like '%" & Text1.Text & "%'"
如果不是模糊查询:
Adodc1.RecordSource = "select 进价 from 商品信息表 where 商品编号 = (select 商品编号 from 销售信息表 where 票号 ='" & Text1.Text & "'"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式