|
縦にも横にもでっかいEXCELの表(以下、DB.xls)をAccess化しようとしています。
1件ずつの処理をするためのファイル(以下、FORM.xls)のB列のvalueは、
tableの列名と一致しています。
尚、上記、tableの列名を入力した範囲(FORM.xlsのB列)に、名前定義がされています。
指定したIDの情報を読む処理を考えているのですが、動的(※)に記述することは可能でしょうか?
※ 下記だけで、新規属性(DBの列)追加が出来る状態。
FORM.xlsに行を挿入してB列にtableの列名を追加、DBのtableに列を追加
尚、守秘義務の都合で、実際のマクロよりかなり簡略化しています。
Sub sample()
Dim DBpath As String
Dim adoCn As ADODB.Connection ' ADOコネクションオブジェクト
Dim adoRs As ADODB.Recordset ' ADOレコードセットオブジェクト
Dim strSQL As String
Dim ws As Worksheet
Set ws = Sheet1
ws.Cells.ClearContents
DBpath = "C:\sample.accdb"
Set adoCn = CreateObject("ADODB.Connection") 'ADOコネクションオブジェクトを作成
Set adoRs = CreateObject("ADODB.Recordset") 'ADOレコードセットオブジェクトを作成
adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBpath & ";"
strSQL = "SELECT * FROM TSUKANIRAI WHERE ID = " & ws.Range("ID")
adoRs.Open strSQL, adoCn
ws.Range("C3").Value = adoRs!NO ' ← この「NO」等が文字列であれば、やりようがあるのですが...
ws.Range("C4").Value = adoRs!HANBAIBI
ws.Range("C5").Value = adoRs!CUSTOMER_NAME
ws.Range("C6").Value = adoRs!CUSTOMER_ADD
adoRs.Close
adoCn.Close
Set adoRs = Nothing
Set adoCn = Nothing
End Sub
|
|