none
データベース(*.mdb)の新規作成 RRS feed

  • 質問

  • Windows 10 + Visual Studio 2017 の Visual Basic にてデータベースを扱うプログラムを作成しています。

    現状は Access 2013 にて作成したデータベースファイルに対してデータの編集を行っておりますが、

    状況に合わせてデータベースファイルを新規に作成してデータ処理を行いたいのですが、データベースファイルを Visual Basic で作成する方法がわかりません。ご存知でしたら情報を提供ください。

    目的は、一例ですが、自身で撮影した星空の写真をもとに星座の星や星同士をつなぐ線などをデータベース化し、描画・印刷させたいと思っています。

    この時に星座ごとに別のデータベースファイルを作成して保存したいと思っています。

    現状は、データベースの構成が同じなのでオリジナルをコピーしてプログラムで処理しています。

    以上、よろしくお願いいたします。

    2017年9月22日 6:47

回答

  • Accessであらかじめ空の(あるいは共通して使用するテーブル群を作成しておいた)mdbファイルを作成しておき、それを作成しているプログラムのリソースに追加しておくのはどうでしょうか。

    必要に応じてそれを適当なフォルダにファイルとして書き出せば、新たなデータベースファイルとして使用できます。

    2017年9月22日 7:07
  • 検索しただけですが・・・

    ADOX および Visual Basic .NET を使用して Microsoft Access データベースを作成する方法
    https://support.microsoft.com/ja-jp/help/317867/how-to-create-a-microsoft-access-database-by-using-adox-and-visual-bas

    accdbファイルの場合は以下が参考になると思います。(C#ですが)

    Visual C#でAccess2007,2010 のデータベースを新規作成する
    http://hideprogram.web.fc2.com/csharp/csharp_create_accdb2010.html

    #データベースを増やすのではなく、1つのデータベースで、かつ、テーブル数やスキーマも固定で開発できるのであれば、それに越したことはないと思います。例えば、星座の一覧データを作成するような場合、面倒ですよね。各データベースのデータを一括で更新する場合、トランザクションの問題も発生するかもしれません。
    いずれにしても、複数のデータベースをまたがる場合、扱いにくい方向へ行くのは間違いないと思います。
    データベースを別にしないといけない理由があるのでしょうか?


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年9月22日 8:12
    モデレータ

すべての返信

  • Accessであらかじめ空の(あるいは共通して使用するテーブル群を作成しておいた)mdbファイルを作成しておき、それを作成しているプログラムのリソースに追加しておくのはどうでしょうか。

    必要に応じてそれを適当なフォルダにファイルとして書き出せば、新たなデータベースファイルとして使用できます。

    2017年9月22日 7:07
  • 検索しただけですが・・・

    ADOX および Visual Basic .NET を使用して Microsoft Access データベースを作成する方法
    https://support.microsoft.com/ja-jp/help/317867/how-to-create-a-microsoft-access-database-by-using-adox-and-visual-bas

    accdbファイルの場合は以下が参考になると思います。(C#ですが)

    Visual C#でAccess2007,2010 のデータベースを新規作成する
    http://hideprogram.web.fc2.com/csharp/csharp_create_accdb2010.html

    #データベースを増やすのではなく、1つのデータベースで、かつ、テーブル数やスキーマも固定で開発できるのであれば、それに越したことはないと思います。例えば、星座の一覧データを作成するような場合、面倒ですよね。各データベースのデータを一括で更新する場合、トランザクションの問題も発生するかもしれません。
    いずれにしても、複数のデータベースをまたがる場合、扱いにくい方向へ行くのは間違いないと思います。
    データベースを別にしないといけない理由があるのでしょうか?


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年9月22日 8:12
    モデレータ
  • ご回答をいただきながら返信が遅くなり申し訳ありませんでした。

    時間の関係でまだ実践できておりませんが、プログラム本体だけのコピーで済みそうなので他のPCでの利用にも便利そうです。

    また、データベースに変更が生じてもプログラムの変更も少なそうです。

    今後ともよろしくお願いいたします。


    2017年9月27日 23:49
  •  trapemiya さま、ご回答ありがとうございました。また、返信が遅くなり申し訳ありませんでした。

    時間の関係で実践できておりませんが、用途に応じてアクセスの介在なしにデータベースが変更できそうで助かります。特にアクセスは1ライセンスしか所有しておりませんので。

    テーブルを増やすことで対象別のデータを作成するのも検討したのですが、データベースファイルが大きくなった場合に不具合が生じたときの影響が大きいので二の足を踏んでいました。

    ファイル自体の管理はおっしゃる通り不便なものになると思いますが、地図のトレースなど用途を考慮して方法を決定していきたいと思います。

    今後ともよろしくお願いいたします。

    2017年9月28日 0:01
  • Excel なら ADO.NET と ACE または JET を利用してブック(.xlsm ファイル)を新規作成できますが、それはお呼びじゃないですか?

    お呼びじゃなければ、すみません、スルーしてください。

    もし興味があって、具体的にどうするのかなどの質問があれば聞いてください。

    2017年9月28日 13:21