vb 多表查询SQL语句
我有一个数据库文件,里面的表结构是这样的
(表名)部门:
(字段名)代码;名称
(表名)仓库:
(字段名)代码;名称
(表名)出入库单据:
(字段名)出入库类型;编号;日期;供应商代码;客户代码;部门代码;保管员代码;收货员代码;发货员代码
(表名)出入库分录:
(字段名)编号;分录号;物料编码;计量单位代码;实收数量;单价;金额;收料仓库;实发数量;单位成本;成本;销售单价;销售金额;发货仓库代码
(表名)供应商:
(字段名)代码;名称
(表名)计量单位:
(字段名)代码;名称
(表名)客户:
(字段名)代码;名称
(表名)物料:
(字段名)代码;名称
(表名)职员:
(字段名)代码;名称;性别;所属部门代码
出入库单据表和出入库分录表以编号连接,其他各表均通过各自代码与其他表对应字段链接
在VB6.0中怎么写这个的查询代码啊,请各位大侠帮帮我
[解决办法]
select 出入库单据.编号 as 编码,出入库单据.日期 as 日期,出入库单据.供应商代码 as 供应商代码,供应商.名称 as 供应商名称,出入库单据.客户代码 as 客户代码,客户.名称 as 客户名称,出入库分录.物料编码 as 物料编码,物料.名称 as 物料名称,出入库分录.实收数量 as 实收数量,出入库分录.单价 as 单价,出入库分录.金额 as 金额from 出入库单据inner join 出入库分录 on 出入库单据.编号=出入库分录.编码left join 供应商 on 出入库单据.供应商代码=供应商.代码left join 客户 on 出入库单据.客户代码=客户.代码left join 物料 on 出入库分录.物料编码=物料.代码
[解决办法]
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\库存管理.mdb;"
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open "select 出入库单据.编号 as 编码,出入库单据.日期 as 日期,出入库单据.供应商代码 as 供应商代码,供应商.名称 as 供应商名称,出入库单据.客户代码 as 客户代码,客户.名称 as 客户名称,出入库分录.物料编码 as 物料编码,物料.名称 as 物料名称,出入库分录.实收数量 as 实收数量,出入库分录.单价 as 单价,出入库分录.金额 as 金额 " _
& " From 出入库单据 " _
& " inner join 出入库分录 on 出入库单据.编号=出入库分录.编码 " _
& " left join 供应商 on 出入库单据.供应商代码=供应商.代码 " _
& " left join 客户 on 出入库单据.客户代码=客户.代码 " _
& " left join 物料 on 出入库分录.物料编码=物料.代码 ",db,adopenkeyset,adlockreadonly
Set grdDataGrid.DataSource = adoPrimaryRS
[解决办法]
1,请检查db是否已经与数据库建立连接
2,请检查SQL语句中表名与字段名是否正确
[解决办法]
adoPrimaryRS.Open "select 出入库单据.编号 as 编码,出入库单据.日期 as 日期,出入库单据.供应商代码 as 供应商代码,供应商.名称 as 供应商名称,出入库单据.客户代码 as 客户代码,客户.名称 as 客户名称,出入库分录.物料编码 as 物料编码,物料.名称 as 物料名称,出入库分录.实收数量 as 实收数量,出入库分录.单价 as 单价,出入库分录.金额 as 金额 " _
& " From 出入库单据 " _
& " inner join 出入库分录 on 出入库单据.编号=出入库分录.编码 " _
& " left join 供应商 on 出入库单据.供应商代码=供应商.代码 " _
& " left join 客户 on 出入库单据.客户代码=客户.代码 " _
& " left join 物料 on 出入库分录.物料编码=物料.代码",db, adOpenKeyset, adLockReadOnly
说了注意红色双引号的位置
[解决办法]
Dim sCmd as String sCmd="select 出入库单据.编号 as 编码,出入库单据.日期 as 日期,出入库单据.供应商代码 as 供应商代码, "scmd=scmd &" 供应商.名称 as 供应商名称,出入库单据.客户代码 as 客户代码,客户.名称 as 客户名称,"scmd=scmd &" 出入库分录.物料编码 as 物料编码,物料.名称 as 物料名称,出入库分录.实收数量 as 实收数量,"scmd=scmd &" "出入库分录.单价 as 单价,出入库分录.金额 as 金额 " scmd=scmd & " From 出入库单据 "sCmd=scmd & " inner join 出入库分录 on 出入库单据.编号=出入库分录.编码 "scmd=scmd & " left join 供应商 on 出入库单据.供应商代码=供应商.代码 "scmd=scmd & " left join 客户 on 出入库单据.客户代码=客户.代码 "scmd=scmd & " left join 物料 on 出入库分录.物料编码=物料.代码 "Debug.print sCmdadoPrimaryRS.Open sCmd, db,adopenkeyset,adlockreadonly先把Debug.print sCmd 打印出来的sCmd放在查询分析器中查询一下结果,看正确与否?
[解决办法]
scmd=scmd &" 出入库分录.单价 as 单价,出入库分录.金额 as 金额 "
多了一个"