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 展开
要先根据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 展开
2个回答
展开全部
子查询
在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个单引号。
在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中有一个是真,或者当前的记录已被删除,所需的操作要求一个当前的记录,但我数据库里确定是有这个数据的
追答
首先,上面一个问题解决了吗?问题一个一个来呀!!
展开全部
Adodc1.RecordSource = "select 进价 from 商品信息表 where 商品编号 = (select top 1 商品编号 from 销售信息表 where 票号 like '%" & Text1.Text & "%'"
如果不是模糊查询:
Adodc1.RecordSource = "select 进价 from 商品信息表 where 商品编号 = (select 商品编号 from 销售信息表 where 票号 ='" & Text1.Text & "'"
如果不是模糊查询:
Adodc1.RecordSource = "select 进价 from 商品信息表 where 商品编号 = (select 商品编号 from 销售信息表 where 票号 ='" & Text1.Text & "'"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询