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でコードを記述できます-同じマネージャーの下にいる従業員の数とその名前を確認できますが、processを使用して同じものが必要ADO-DBです。同じコードを作成するにはどうすればよいですか?

オラクル:

select mangerid、(select ename from Employe 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

Excel での ADO の使用に関する 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

Oracle クエリで何を返すのか理解できなかったため、SQL クエリで Order By を使用しました。

于 2012-12-29T22:59:18.653 に答える