Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2960 / 76735 ←次へ | 前へ→

【79415】access連携 列名追加を簡単にするには?
質問  りった  - 17/10/11(水) 12:40 -

引用なし
パスワード
   縦にも横にもでっかい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
2 hits

【79415】access連携 列名追加を簡単にするには? りった 17/10/11(水) 12:40 質問[未読]
【79417】回答がつかないのでaccessの掲示板に移動し... りった 17/10/12(木) 9:55 お礼[未読]

2960 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free