vb+access   我用SQL语句多表联合建立了一个后台没有的新表,并显示在界面上,但是如何对表中的数据进行排序、查询等操作呢。
    我本想用“slect 字段 from 表 where” 建立,但是建立的新表没有名字,该怎么命名呢?还有其他方法吗?
    望高手指教,最好附一小段代码。谢谢了。

解决方案 »

  1.   

    建立的视图怎么显示在界面上呢?我试了几次都没成功。我用的是data控件连接的。谁能给些代码啊,我新手,谢谢。
      

  2.   

    Create view 查询表 as "select 选课信息表.学号,选课信息表.课程号,课程信息表.任课老师  " _
       & " from 选课信息表 inner join 课程信息表 on 选课信息表.课程号 = 课程信息表.课程号 " _
       & " where 选课信息表.学号 = '" & Text1.Text & "' or 选课信息表.课程号 = '" & DBCombo2.Text & "'"
       Data4.RecordSource = mysql
       Data4.Refresh老是提示缺少语句结束,帮我看看是怎么回事、
      

  3.   

    access好想是一个叫做查询的东西
      

  4.   

    嗯、我觉得access中的“查询”基本就等同于SQL SERVER中的“存储过程”了
      

  5.   

    "slect 字段 from (生成新表的sql语句) where ... order by ..."
      

  6.   

    mysql2 = " select *  " _
       & " from (" & mysql & ") " _
       & " where " & Combo1.Text & "='" & Text2.Text & "'"
    提示from 字句语法错误。
      

  7.   

    实在不行,你在sql中写个自定义函数,让他返回你多表查询的结果,用法和视图是一样的,也很方便的
      

  8.   

    注意双引号的位置 "Create view 查询表 as select ……  "
    Data4.RecordSource = mysql '这里应该是个数据源,而不是单纯一个sql语句
    其实你也可以直接用查询,然后放到一个记录集里.这个查询还可以用一个别名表示
    set rs=cn.execute("select ...")
    set Data4.RecordSource =rs.clone
      

  9.   

    '取得数据记录集,提供您参考。
    Public Function LoadDataProcess()
        Dim LoadSql As String
        Dim loadRs As New ADODB.Recordset
        
        LoadSql = "select PALLETSN,NAMEPLATE,RATEDPOWER,PACKAGEQTY,MODULEGRADE,ia_002_tabpackageinfo.warehousevoucher,id from iqms.ia_002_tabpackageinfo " + _
                  "where PALLETSN not in( select packagecode from iqms.ia_002_tabpackagecustfilers)"
        
        loadRs.Open LoadSql, Conn, adOpenStatic, adLockOptimistic
        
        If Not loadRs.EOF Then
            loadRs.MoveFirst
            Call LoadData(loadRs, Me.MSHFlexGrid1)
            
            Call RevalSn(MSHFlexGrid1, 2) '重置序列号
            Call ReValueSelectStatus(MSHFlexGrid1, 1, "0") '设置为未选定状态
        Else
            'Nothing
        End IfEnd Function'读取数据
    Public Function LoadData(ByVal Rs As ADODB.Recordset, ByVal Mshflex As MSHFlexGrid)
        Dim i, j As Integer
        Rs.MoveFirst
        For i = 1 To Rs.RecordCount
            
                For j = 0 To 5
                    Mshflex.TextMatrix(i, j + 3) = Rs.Fields(j)
                Next j
                
                    If i = Rs.RecordCount Then
                    
                        'Mshflex.AddItem Mshflex.Row
                    Else
                        Mshflex.AddItem Mshflex.Row
                    End If
            
            Rs.MoveNext
        Next i
    End FunctionNote:若是不清楚,欢迎前来咨询。