【发布时间】:2012-03-07 03:25:20
【问题描述】:
vba ADO 和 Sql 查询中的疑问...
我有 2 张工作表,即 adodc1,adodc2(在一个工作簿中)
在 adodc1 中有“Name”、“Dept”列,有时它有“Sect”列
在 adodc2 中有"Name","Dept","sect" 列
我想要的是当我运行 Query..Vba 需要检查 adodc1 是否有 Sect 列..如果它有联合,则两张纸通常有其他
想要返回空值..
以下代码取自“”,根据我的需要进行了修改
它将做的是两个工作表中的联合名称和部门列..现在我想查询 adodc1 是否有列“sect”..如果它有
union "Sect" 像往常一样 else .. union 作为空值
Sub connecttoexcel()
Dim cn As Object
Dim rs As Object
Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim s As String
Dim i As Integer, j As Integer
strFile = ActiveWorkbook.FullName
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";Extended Properties=""Excel 12.0 XML;HDR=Yes;IMEX=1"";"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon
'here i want some stuff
strSQL = "Select Name, Dept from [Adodc1$] Union Select Name, Dept from [Adodc2$];"
rs.Open strSQL, cn
Worksheets("Sheet3").Cells(2, 1).CopyFromRecordset rs
Set rs = Nothing
End Sub
【问题讨论】: