上次的贴子地址:http://topic.csdn.net/u/20110611/11/d1edfd90-1ce7-4116-947a-eda9b4d96584.html?1098860996之前发贴的时候还没有找到我要的那张表,现在找到之后发现又有问题。
上次测试可行的代码为:
Private Sub Command1_Click()
Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset'sql server数据库连接过程
Cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=UFDATA_002_2011;Data Source=192.168.1.6;Connect Timeout=30"
Cn.Open
strsql = "select cInvCode,iQuantity from CurrentStock where cInvCode like '%" & Text1.Text & "%'"
If Cn.State = adStateOpen Then
    Rs.CursorLocation = adUseClient
    Rs.Open strsql, Cn, adOpenDynamic, adLockOptimistic
Else
    MsgBox "SQL Server数据库连接错误!"
    End
End IfSet DataGrid1.DataSource = Rs
Set Rs = Nothing
End Sub我要让程序列出的是存货编码、物料名称、现存量
这段代码CurrentStock表中,cInvCode是物料编码,iQuantity是现存量
这张表里没有物料名称,只有编码和现存量,另外有一张表是存货档案,里面有所有的物料编码和物料名称所以,现在要先在Inventory表物料名称中查询出包含text1的所有行,再根据列出的物料编码到CurrentStock表中查询出现存量,然后再依次列出物料编码、物料名称、现存量Inventory表中cInvCode是物料编码,cInvName是物料名称
CurrentStock表中cInvCode是物料编码,iQuantity是现存量不知道说明白没有,不明白的可加我QQ:88580324谢各位赐教、、、、

解决方案 »

  1.   

    strsql = "select inv.cInvCode as cInvCode,inv.cInvName as cInvName,inv.cInvStd as cInvStd,curr.iQuantity as iQuantity from Inventory as inv inner join CurrentStock as curr on inv.cInvCode=curr.cInvCode where cInvCode like '%" & Text1.Text & "%'"
      

  2.   

    CurrentStock表中是有仓库编码cWhCode的,如果楼主要显示明细的话最好在显示中加上仓库编码与仓库名称,如果要显示存货总库存则需要汇总现存量表Currentstock
      

  3.   

    有问题,运行出现cInvCode不明确
    嗯,可以显示仓库名称,明确是材料还是成品,或者在搜索时选择搜索那一个仓库
      

  4.   

    strsql = "select a.cInvCode,b.cInvName,a.iQuantity from CurrentStock a inner join Inventory b on a.cInvcode=b.cInvCode where a.cInvCode like '%" & Text1.Text & "%'"
      

  5.   

    SQL中使用别名:
    select inv.cInvCode as cInvCode,...
      

  6.   

    strsql = "select inv.cInvCode as cInvCode,inv.cInvName as cInvName,inv.cInvStd as cInvStd,curr.iQuantity as iQuantity from Inventory as inv inner join CurrentStock as curr on inv.cInvCode=curr.cInvCode where cInvCode like '%" & Text1.Text & "%'"
    if rs.state<>adstateclosed then rs.close
    rs.open strsql,cn,adopenkeyset,adlockreadonly
    set datagrid1.datasource=rs
      

  7.   

    '右击工程,添加一个 DataEnvironment,不用设置任何东西,关掉打开的窗口即可.
    Private Sub Command1_Click()
        Dim CN As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
            
        CN.ConnectionString = "driver={sql server};server=MYSQLSERVER;uid=sa;pwd=mypass;database=test"
        CN.Open
        
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from employee", CN, adOpenDynamic, adLockOptimistic    Set DataGrid1.DataSource = Rs
    End Sub
     
      

  8.   

    Private Sub Command1_Click()
    Dim Cn As New ADODB.Connection
    Dim Rs As New ADODB.Recordset'sql server数据库连接过程
    Cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=UFDATA_002_2011;Data Source=192.168.1.6;Connect Timeout=30"
    Cn.Open
    '***********下面是语句修改部份strsql = "select i.cInvCode as [存货编码],i.cInvName as [存货名称]" & _
             ",c.iQuantity as [现存量] from Inventory i left join CurrentStock c " & _
             " on i.cInvCode=c.cInvCode where i.cInvCode like '% & Text1.Text& %'"
    '************
    If Cn.State = adStateOpen Then
        Rs.CursorLocation = adUseClient
        Rs.Open strsql, Cn, adOpenDynamic, adLockOptimistic
    Else
        MsgBox "SQL Server数据库连接错误!"
        End
    End IfSet DataGrid1.DataSource = Rs
    Set Rs = Nothing
    End Sub
      

  9.   


    Private Sub Command1_Click()
    Dim Cn As New ADODB.Connection
    Dim Rs As New ADODB.Recordset'sql server数据库连接过程
    Cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=UFDATA_002_2011;Data Source=192.168.1.6;Connect Timeout=30"
    Cn.Open
    '***********下面是语句修改部份strsql = "select i.cInvCode as [存货编码],i.cInvName as [存货名称]" & _
      ",c.iQuantity as [现存量] from Inventory i left join CurrentStock c " & _
      " on i.cInvCode=c.cInvCode where i.cInvCode like '% & Text1.Text& %'"
    '************
    If Cn.State = adStateOpen Then
      Rs.CursorLocation = adUseClient
      Rs.Open strsql, Cn, adOpenDynamic, adLockOptimistic
    Else
      MsgBox "SQL Server数据库连接错误!"
      End
    End IfSet DataGrid1.DataSource = Rs
    Set Rs = Nothing
    End Sub
      

  10.   


    '....
    strsql="select Inventory.cInvCode,Inventory.cInvName,CurrentStock.iQuantity from Inventory,CurrentStock where Inventory.cInvName like '" & trim(text1.text) & "' and Inventory.cInvCode=CurrentStock.cInvCode"
    '....