- ベストアンサー
他のMDBのテーブルに追加したい
- Access2010のADOを使用して、他のMDBのテーブルにデータを追加する方法を教えてください。
- リンクすることで異なるテーブル名のテーブルにはデータを追加できますが、同じテーブル名の場合はどのようにすればよいのでしょうか。
- ご指導の程、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
以下でどうなりますか SQL = "INSERT INTO テーブルA( 勤務時間 ) IN '★★' " _ & "SELECT 勤務時間 FROM テーブルA;" ※ ★★ 部分は相手のフルパスに書き換えます。 相手が E:\Hoge\aaa.accdb なら SQL = "INSERT INTO テーブルA( 勤務時間 ) IN 'E:\Hoge\aaa.accdb' " _ & "SELECT 勤務時間 FROM テーブルA;" もしくは SQL = "INSERT INTO [;DATABASE=E:\Hoge\aaa.accdb].[テーブルA]( 勤務時間 ) " _ & "SELECT 勤務時間 FROM テーブルA;" > 違うテーブル名でしたら、リンクをすれば済む話とは思いますが リンクする時に名前を変えておけばよいですね 以下は、リンクテーブル「T_Tmp」を作り直す例?になるか? ( ADO ではなく DAO での例ですけど・・・) Public Sub Samp1() Dim db As DAO.Database Dim tdf As DAO.TableDef Const sFile As String = ";DATABASE=E:\Hoge\aaa.accdb" On Error Resume Next Set db = CurrentDb db.TableDefs.Delete "T_Tmp" Set tdf = db.CreateTableDef("T_Tmp") With tdf .Connect = sFile .SourceTableName = "テーブルA" End With db.TableDefs.Append tdf db.TableDefs.Refresh Set tdf = Nothing Set db = Nothing RefreshDatabaseWindow End Sub ADO なら、以下が参考になるかも リンクされたテーブルを作成する http://msdn.microsoft.com/ja-jp/library/cc376276.aspx
お礼
こんにちはー とっても詳しいご回答ありがとうございましたッ! 助かりました。 SQL = "INSERT INTO テーブルA( 勤務時間 ) IN 'E:\Hoge\aaa.accdb' " _ & "SELECT 勤務時間 FROM テーブルA;" の方法で解決しました。