- PR -

VB.NETでACCESSファイル作成

1
投稿者投稿内容
初心者さん
会議室デビュー日: 2005/08/25
投稿数: 16
投稿日時: 2005-08-29 13:13
VB.NETでOracleのデータを読み込みACCESSのmdbファイルを新規で作成。
データを登録したいのですが、どのようにすればいいのでしょうか?
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2005-08-29 13:30
お世話になります。

これは,参考になりますでしょうか。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/odc_ac2003_ta/html/odc_AcAutomateVBNet.asp

追記:
テーブル作成については,VBAだとこんな感じみたいです。
http://www.accessclub.jp/samplefile/samplefile_163.htm

[ メッセージ編集済み 編集者: なおこ(・∀・) 編集日時 2005-08-29 13:43 ]
初心者さん
会議室デビュー日: 2005/08/25
投稿数: 16
投稿日時: 2005-09-02 13:40
なおこ(・∀・)さん回答ありがとうございました。
そして返答遅れて申し訳ございませんでした。

教えていただいたHPを参考にいろいろ調べてみたのですが、
MDBファイルの新規作成はできるのですが、Exportがどうしてもできませんでした。

Dim acApp As New Access.Application

acApp.NewAccessProject("作成するMDBファイル名")
acApp.CloseCurrentDatabase()
acApp.DoCmd.TransferDatabase(Access.AcDataTransferType.acExport
          ,"Microsoft Access"
         ,"作成するMDBファイル"名"
          ,Access.AcObjectType.acTable,
,dt
,"Export先でのテーブル名", False)

※dtはDataTable(この処理の前にOracleからデータを読み込んだもの)
という風にOracleから読み込んだDataTableのテーブルの構造 + データ
をそのままExportというところで詰まってしまいました。
どうかアドバイスいただけないでしょうか?
よろしくお願いいたします。

なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2005-09-02 13:57
お世話になります。

引用:

教えていただいたHPを参考にいろいろ調べてみたのですが、
MDBファイルの新規作成はできるのですが、Exportがどうしてもできませんでした。

Dim acApp As New Access.Application

acApp.NewAccessProject("作成するMDBファイル名")
acApp.CloseCurrentDatabase()
acApp.DoCmd.TransferDatabase(Access.AcDataTransferType.acExport
          ,"Microsoft Access"
         ,"作成するMDBファイル"名"
          ,Access.AcObjectType.acTable,
,dt
,"Export先でのテーブル名", False)

※dtはDataTable(この処理の前にOracleからデータを読み込んだもの)
という風にOracleから読み込んだDataTableのテーブルの構造 + データ
をそのままExportというところで詰まってしまいました。
どうかアドバイスいただけないでしょうか?
よろしくお願いいたします。



おそらく,DataTableはExport元データソースとしては使えないのではないでしょうか。

DAO等や,CREATE TABLEでテーブルを作成してから,
ADO.NETでデータを流し込む方法もありますよ。

# 追記:先日試した方法(テーブル作成まで)
Private Sub CreateDogDataBase(ByVal mdbpath As String)

Dim acApp As Access.Application = New Access.Application
acApp.Visible = False
Dim tdfNew As DAO.TableDef

Try
'mdbファイルの設定
If System.IO.File.Exists(mdbpath) Then
'既にある場合は削除
System.IO.File.Delete(mdbpath)
Else
'mdb新規作成
acApp.NewCurrentDatabase(mdbpath)
End If

'テーブルを作成
tdfNew = acApp.CurrentDb.CreateTableDef("Dog")
With tdfNew
.Fields.Append(.CreateField("Kind", DAO.DataTypeEnum.dbText, 50))
.Fields.Append(.CreateField("Name", DAO.DataTypeEnum.dbText, 20))
End With
acApp.CurrentDb.TableDefs.Append(tdfNew)

Catch ex As Exception
Trace.WriteLine("失敗" + ControlChars.NewLine + ex.StackTrace())
Finally
If Not IsNothing(acApp) Then acApp.Quit(Access.AcQuitOption.acQuitSaveAll)
System.Runtime.InteropServices.Marshal.ReleaseComObject(acApp)
System.Runtime.InteropServices.Marshal.ReleaseComObject(tdfNew)
End Try
End Sub



[ メッセージ編集済み 編集者: なおこ(・∀・) 編集日時 2005-09-02 14:14 ]
初心者さん
会議室デビュー日: 2005/08/25
投稿数: 16
投稿日時: 2005-09-05 14:01
なおこ(・∀・)さん回答ありがとうございました。

先日教えていただいた方法でできました。
この方法で、テーブルを作成し、自分でデータを登録するようにしました。
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)