表A中有一些字段,表B中有一些字段,但是目前我不能确定这两个表中具体有哪些,我现在想在程序中提取公共的字段。请问有没有现成的sql语句可以实现,或者哪位有没有具体的算法可以给我提供一下。

解决方案 »

  1.   

    我用的是oracle,通过查询获得字段的名称或类型然后逐个比较吗?
      

  2.   

    Dim RstMt As ADODB.Recordset
    Dim rstDt As ADODB.Recordset
    Dim i As Integer, j As Integer
    Dim blnSame As Boolean
    '打开第一个表rstMT
    '打开第二个表rstDt
        For i = 0 To RstMt.Fields.Count - 1
            For j = 0 To rstDt.Fields.Count - 1
                If RstMt.Fields(i).Name = rstDt.Fields(j).Name Then     '字段名字相同
                   If RstMt.Fields(i).DefinedSize = rstDt.Fields(j).DefinedSize Then        '长度相同
                     If RstMt.Fields(i).Type = rstDt.Fields(j).Type Then   '类型相同
                          blnSame = True
                          exit for
                     End If
                  End If
               End If
            Next j
            If blnSame Then MsgBox "Same field's name is " & RstMt.Fields(i).Name
            blnSame = False
        Next i
      

  3.   

    如果用Sql语句,那请问你的数据库是Sql Server或Acess或是什么?
      

  4.   

    你可以采用显示所有的字段,然后再提取'引用微软 ADO Ext.2.7 for dll and Security
    Dim cat As ADOX.Catalog
    Dim cnn As ADODB.Connection
    Dim tbl As ADOX.TablePrivate Sub Command1_Click()
    On Error Resume Next
    For Each tbl In cat.Tables
    If Left(tbl.Name, 4) <> "MSys" Then
    List1.AddItem tbl.Name
    End If
    Next
    End SubPrivate Sub Form_Load()
    Set cnn = New ADODB.Connection
    Set cat = New ADOX.Catalog
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\csdn_vb\database\treeview的节点添加\article.mdb"
    Set cat.ActiveConnection = cnn
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    Set cat = Nothing
    Set con = Nothing
    End Sub
    这里显示字段名
    Private Sub List1_Click()
    Dim fld
    Dim intfield As Integer
    List2.Clear
    intfield = cat.Tables(List1.List(List1.ListIndex)).Columns.Count
    For i = 0 To intfield - 1
        Set fld = cat.Tables(List1.List(List1.ListIndex)).Columns(i)
        List2.AddItem fld.Name & " " & fld.Type & " " & fld.DefinedSize
    Next
    End Sub
      

  5.   

    感谢大家帮助,问题已经基本解决,请大家帮忙再解决一下这个实现过程中的小问题
    http://community.csdn.net/Expert/topic/3341/3341527.xml?temp=.2331201
    马上结帐,非常感谢。我现在非常着急,拜托各位了。