就是很简单的有N个相同结构的表如下结构:
ID1
ID2
ID3
字段1
字段2
第一个表的名字是QRY1
第二个表的名字是QRY2
.
可能有N个表,但不会超过10个的
现在要自动生成SQL语句以达到以下的结果:
ID1
ID2
ID3
QRY1_字段1
QRY1_字段2
QRY2_字段1
QRY2_字段2
QRY3_字段1
QRY3_字段2
…(数量不定) 

解决方案 »

  1.   

    用join至于用哪种join,要看你的需求
      

  2.   

    自动生成SQL语句的函数?
    太难理解如果能把问题问得更精确一些,也许想回答的人才能帮上你。
      

  3.   

    其实主要就是生成 from 后面的那些个表的JION语句,比如2个表是(假设就ID1是主键): FROM QRY1 INNER JOIN QRY2 ON イQRY1.id1 = QRY2.id2,但是有可能是3个表,或5个表,这时候传个参数进来自动生成这个JION
      

  4.   

    Function GenerateSQL(ByVal TableCount As Long) As String
        Dim sFields As String
        Dim sTables As String
        Dim i As Long
        
        sFields = "QRY1.ID1, QRY1.ID2, QRY1.ID3" & _
                  ", QRY1.字段1 AS QRY1_字段1" & _
                  ", QRY1.字段2 AS QRY1_字段2"
        sTables = "QRY1"
        For i = 2 To TableCount
            sFields = sFields & vbCrLf & _
                     Replace(", QRY{0}.字段1 AS QRY{0}_字段1" & _
                             ", QRY{0}.字段2 AS QRY{0}_字段2", _
                             "{0}", i)
            sTables = sTables & vbCrLf & _
                      Replace(" JOIN QRY{0} ON QRY{0}.ID1=QRY1.ID1" & _
                              " AND QRY{0}.ID2=QRY1.ID2" & _
                              " AND QRY{0}.ID3=QRY1.ID3", _
                              "{0}", i)
        Next
        
        GenerateSQL = "SELECT " & sFields & vbCrLf & _
                      " FROM " & sTables
    End Function