Access VBA質問箱 IV

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

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


48 / 2272 ツリー ←次へ | 前へ→

【13200】access連携 列名追加を簡単にするには? りった 17/10/12(木) 9:56 質問[未読]
【13208】Re:access連携 列名追加を簡単にするには? りった 17/10/18(水) 12:47 お礼[未読]

【13200】access連携 列名追加を簡単にするには?
質問  りった  - 17/10/12(木) 9:56 -

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

【13208】Re:access連携 列名追加を簡単にするには...
お礼  りった  - 17/10/18(水) 12:47 -

引用なし
パスワード
   自己解決しました。

SELECT CUSTOMER_NAME AS ATTR1 ,,,,, 等とすれば、
列が増えてもほとんど修正しなくてよくなります。
トリッキーですが。

48 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078185
(SS)C-BOARD v3.8 is Free