vb中如何实现两个表的连接查询?sql语句没问题,但执行不了。(有其它代码)

cmcoralline 2001-05-11 08:08:00
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
cn.Mode = adModeShareDenyWrite
cn.Open "dsn=TextBook"
Set cmd.ActiveConnection = cn
rst.CursorLocation = adUseClient
cmd.CommandText = " SELECT Products.product_id, Products.product_name,Products.quantity_in_unit, Products.出版时间Supplier.company_name as scompany_name ,Products.unit_price FROM tastrade!supplier RIGHT OUTER JOIN tastrade!products ON Supplier.supplier_id = Products.supplier_id"cmd.CommandType = adCmdText
cmd.CommandType = adCmdText
rst.Open cmd, , adOpenForwardOnly, adLockReadOnly
Set rst.ActiveConnection = Nothing
If rst.RecordCount = 0 Then
MsgBox "教材科目前已无库存!", 64, "结果"
Welcome.WriteTemplate
Exit Sub
End If
With Response
.Write "<HTML>"
.Write "<BODY>"
.Write "<p align=""center""><b><font color=#2781c9 size=6>库存书目</font></b></p>"
.Write "<hr>"
.Write "<table BORDER CELLSPACING=1 CELLPADDING=7><TR>"
.Write "<tr><td>教材代码</td><td>教材名称</td><td>作者</td>"
.Write "<td>出版时间(版次)</td><td>出版社</td><td>单价</td>"
While Not rst.EOF
.Write "<TR>"
.Write "<TD>" & rst.Fields("product_id") & "</TD>"
.Write "<TD>" & rst.Fields("product_name") & "</TD>"
.Write "<TD>" & rst.Fields("quantity_in_unit") & "</TD>"
.Write "<TD>" & rst.Fields("出版时间") & "</TD>"
.Write "<TD>" & rst.Fields("scompany_name") & "</TD>"
.Write "<TD>" & rst.Fields("unit_price") & "</TD>"
.Write "</TR>"
rst.MoveNext
wend
.Write "</table>"
.Write "<hr>"
.Write "<p align=""right""><a href=""" & URLFor(Welcome) & """>返 回</a></p>"
.Write "</BODY></HTML>"
End With
Set cn = Nothing
Set cmd = Nothing
Set rst = Nothing


返回的rst中只有一个表中的字段,而另一表的字段为空,左、右、内、全联接都试过了,能返回一个表就算不错的,有的什么也回不来。
...全文
296 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmcoralline 2001-05-11
  • 打赏
  • 举报
回复
武松:
那我在标准EXE中把Ado和DBGrid与数据库中的视图连接,此视图就是库中两个表联接而成的,显示时,总有问题,左、右联接时只显示其中一个表的字段,另一表中字段为空,内联接时都为空,根本不显示数据,全联接又不符合要求,怎么回事?具体说来,就是我要把一个表中的出版社代码用另一表中的出版社名代替。恳请高手指点。
flytiger1977 2001-05-11
  • 打赏
  • 举报
回复
我的E-mail:flytiger1977@etang.com
flytiger1977 2001-05-11
  • 打赏
  • 举报
回复
用SQL语句肯定行,我用过的。
BrentIvan 2001-05-11
  • 打赏
  • 举报
回复
虽然我没有这样做过,不过想来应该是可以的。
加分不必急,解决再说。 你的程序发了吗?
cmcoralline 2001-05-11
  • 打赏
  • 举报
回复
对于您的热情我无比感激,想再问您,在VB里实现两个表的连接的确可行是吗,我用标准工程中的ADO和DBDrid控件在普通窗体中做实验都不行。我是新手,怎样能给您加分?
BrentIvan 2001-05-11
  • 打赏
  • 举报
回复
看不出有什么问题。
这样吧,程序打包(包括dbf文件),发给我看看 brentivan@163.net
cmcoralline 2001-05-11
  • 打赏
  • 举报
回复
具体来说:我在做网上订购教材的系统,用VB中的IIS应用程序,B/S模式,数据库是VF的,库中有表products包括书名和出版社代码,表supplier包括出版社代码和出版社名,我想把书名和出版社名同时显示出来,需要两个表的连接,在VF中建视图,各种联接均达不到所需效果,要么只返回一个表中的内容,要么一个都没有。现用SQL执行也不行。
BrentIvan 2001-05-11
  • 打赏
  • 举报
回复
你要问什么?
cmcoralline 2001-05-11
  • 打赏
  • 举报
回复
to BrentIvan:
怎么了,是不是我的问题太幼稚了,还是没有可行的办法,要换方案?可我被困的好苦。
cmcoralline 2001-05-11
  • 打赏
  • 举报
回复
删除上一条回复,改为:另外,cmd.CommandType = adCmdText 多写了一句。
cmcoralline 2001-05-11
  • 打赏
  • 举报
回复
另外,cmd.commandType=adcamdtext 多谢了一句。
cmcoralline 2001-05-11
  • 打赏
  • 举报
回复
确实是掉了逗号。
tyd163xx 2001-05-11
  • 打赏
  • 举报
回复
我也想知道
BrentIvan 2001-05-11
  • 打赏
  • 举报
回复
Products.出版时间Supplier.company_name 是什么?是不是掉了逗号?

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧