0

我在Excel中有一些数据如下:

EmpId     Ename      joining Date      mangerid

12         aa            12/10             15
22         abc           11/10             15
42         ara           12/10             11
15         pp            08/10             10
12         bb            02/10             11

现在我可以在 Oracle 中编写代码 - 看看有多少员工在同一个经理和他们的名字下。但是现在我想要使用相同的ADO-DB进程。所以我怎么能写一个相同的代码?

甲骨文:

select mangerid,(select ename fromemployee where mangerid=e.manager id),Count(4) from emp e group by mangerid

我的excel表中有这样的数据。

输出

Mangerid      empid      count
================================
15            12           2
              22
11            12           2
              42
10            15           1
4

1 回答 1

1

这是一篇关于将 ADO 与 Excel 结合使用的 MSDN 文章。下面的代码是根据这个问题稍微修改的。这Sheet1C:\example.xls. 然后根据需要将数据加载到 Modify 中。这是一个 VBA 示例,我现在没有时间将其更改为 VBS。它假定您实际上拥有 Excel 并引用了 ADODB。

Sub test()
Dim conn As ADODB.Connection
Dim sql As String
Dim rst As ADODB.Recordset
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\example.xls;Extended Properties=Excel 8.0;"
sql = "SELECT [manger id], Ename from [Sheet1$] Order by [manger id]"

Set rst = New ADODB.Recordset
rst.Open sql, conn, 1

'Load data from recordset
Worksheets("Results").Range("A2").CopyFromRecordset rst

rst.Close
Set rst = Nothing

conn.Close
Set conn = Nothing
End Sub

我在 SQL 查询中使用了 Order By,因为我无法理解您使用 Oracle 查询返回的内容。

于 2012-12-29T22:59:18.653 回答