VB2005でACCESSの処理

このQ&Aのポイント
  • VB2005でACCESSの処理方法について教えてください
  • VB.NETではデータベースへの接続がスムーズに移行できなかった経験から、VB2005での処理方法について知りたいです
  • VB2005の導入におけるデータベース処理のトレーニングコースを教えてください
回答を見る
  • ベストアンサー

VB2005でACCESSの処理

VB5.0でACCESS(DAOを利用)を使っています。VB.NETが発表された時早速購入挑戦しましたが、データベースへの接続がスムーズに移行できそうになくgive-upしました。.NETは Windowsのprofessinal版でしか利用できなっかたのですがVB2005ではかなりその制限がゆるんだようです。 Microsofthへ電話したりHPで調べましたが、よくわからなかったので質問です。 1..NET系ではデータベースがXML志向のようですが、これってシークエンシャルファイルで使いにくいように思えますが、うまくいくのでしょうか? 2.DAOはVB5.0 6.0感覚で使えるのでしょうか? 3.上記のようなことが学べるVB2005の導入のいいトレーニングコースを紹介してください。 よろしくお願いいたします。

noname#24731
noname#24731

質問者が選んだベストアンサー

  • ベストアンサー
noname#187541
noname#187541
回答No.1

こんにちは。 あまり詳しくないですが。 .NETでデータベースを扱う場合は、基本的にはADOの.NET版である「ADO.NET」を使います。 ADOとの違いは、ADOは常にデータベースと接続していますが、ADO.NETの場合データを取得するときのみ接続し、取得したデータをメモリ上に保存してそれを利用します。 このためADO.NETは「非接続型」言われています。 一応、DAOやADOもCOMオブジェクトとして参照設定すれば使えるようにはなります。しかし、COMオブジェクトの扱いは多少めんどくさいのでやめた方が良いでしょう。 このADO.NETはデータベースだけでなくXMLデータも扱える設計になっっているということでXML志向というわけではないと思います。 ADO.NET基礎講座 http://www.atmarkit.co.jp/fdotnet/basics/adonet01/adonet01_01.html また、VB6とVB.NETは別物と考えた方が良いかと思うのでデータベース以外の部分でも参考になるサイトを紹介しておきます。 Visual Basic 中学校 http://homepage1.nifty.com/rucio/main/main.htm ここのサンプル集にはAccess(MDB)への接続方法があります。

noname#24731
質問者

お礼

早速に的を射た回答いただきありがとうございます。ADO.netの講座も紹介していただきありがとうございます。是非挑戦し、現在VB5.0で開発したものの移行を考えたいと思います。

その他の回答 (1)

  • SUPER-NEO
  • ベストアンサー率38% (706/1857)
回答No.2

#1さんの、ADO.NETを使用した方法を使っています。 VB5.0の資産を.NETへ移植されるようですが、 .NETになると、オブジェクト指向が強化されていますので、 また、今後、資産の流用なども発生してくると思うので、 クラス設計などの見直しも忘れずに行なったほうがいいです。

noname#24731
質問者

お礼

アドバイスありがとうございます。.NETが発表されたときすぐに購入し、フォーム設計はやりかけたのですが、データベースへのアクセス部分で挫折していました。アプリケーションロジックを踏襲するようにして、.NETの違う部分は力仕事でやってみる心算です。

関連するQ&A

  • VB2008からAccess2007へのDAO接続でエラーになります。

    VB2008からAccess2007へのDAO接続でエラーになります。 VB2008EEからDAO3.6を利用し、Access2007(*.accdb)に接続しようとしていますが、 エラーが発生してしまい、接続できません。 エラーの内容は下記のとおりです。 実行時エラー '3343': データベースの形式 'XXX' を認識できません。 Access2000のデータベース(*.mdb)には普通に接続できています。 Accessのバージョンを問わずに接続したい場合、どうすればよいのでしょうか? 参考までに現在のコードを記載しておきます。 ※DAO3.6に参照設定してあります。 Imports dao Module modConnectDb Public Function DaoConnect(ByVal strDb As String) As Boolean 'strDb:データベースのファイルパス Dim Ws As dao.Workspace Dim DbE As dao.DBEngine Dim Db As dao.Database Dim strMsg As String Try DbE = New dao.DBEngine Ws = DbE.Workspaces(0) Db = Ws.OpenDatabase(strDb) Catch ex As Exception strMsg = "エラー番号 " & Str(Err.Number) & vbCrLf & _ Err.Source & " でエラーが発生しました。" & vbCrLf & Err.Description MsgBox(strMsg, vbExclamation, "エラー") End Try End Function End Module

  • VB.NETについて

    VisualBasicか、JAVAが、データベース及び、ネットワークとの 相性がいいと感じているので、まずは、習得しやすい、VBを覚えたいと思っています。そこで、VB6とVB.netどちらを覚えたほうがよいでしょうか? 質問のポイント (1)VB.netを覚えておけば、すんなりVB6もできるものか? (2)VB.netの将来性はどうでしょうか?企業では、Windows2000が 普及しており、WindowsXPはあまり普及していません。 同様に、.netもあまり使われているのは見たことがないのですが、 将来的には普及するのでしょうか?当分は、VB6のまま? もしくは、VB.netは使えない(違法コピーができない?)から 他の言語に移行なんてこともありうるのかな?なんて思っています。 以上、 よろしくお願いします。

  • VB5.0でACCESS2002のテーブルをDBGridに表示

    VB5.0で開発したプログラム内でACCESS97のテーブルをDBグリッドに表示させていました。 ACCESSを2002にバージョンアップさせる必要があり、移行処理をしていましたが、そのままでは「データベースを認識できません」というエラーになってしまいます。DAOデータコントロールのDatabaseNameプロパティが設定できないようです。レコードセットでは読み込めているようなので、レコードセットをデータコントロールに割り当てたら表示されました。 そのときデータコントロールのrefreshはエラーになるためフォーム全体をrefreshしました。 ところがそれをコンパイルしてACESS2002のランタイムのみがインストールされているマシンにインストールするとDBグリッドが表示されません。 どうしたらよいでしょうか?こんな小手先の変更では無理でしょうか?宜しくお願いします。

  • VB.netでmdbのレコードを取得

    VB.netからAccessで作成したデータベースのレコードを 取得するプログラムを作りたいと考えています。 ですが、データベースを操作するプログラムは初めてですので、 どうもイメージがわきません。 やりたいことは、 1.VBからmdbにアクセス(DAO) 2.SELECTでレコードを取得 3.取得したレコードから必要なフィールドをテキストボックに表示 上記の処理が可能であれば、コーディングのヒントを頂けないでしょうか? よろしくお願いします --- OS:Windows Vista 開発環境:VS2005 pro

  • VB.NETでSQL server の操作

    VB.NETにて主に帳票ソフトを作成しているのですが、使用しているデータベースがアクセスなので容量が大きくなると処理がスムーズに行かないため、Microsoft SQL server の導入を考えています。そこで、VB.NETよりSQL serverを操作するコーディングについて説明されているおすすめの参考書などはないでしょうか?宜しくお願いします。(因みに VisualBasic2008, SQL server 2008 です)

  • VB(.NET)でサーバー上のDB(ACCESS)にInsert

    IIS5.0の導入されているサーバにACCESSのMDBがあります。 このデータベースにインターネットを介して、レコードの Insert・Updateを行いたいです。 クライアント側のアプリはVB(.net)を利用して作成する つもりでいるのですが、直接サーバ上のDBに接続する事は 可能な物でしょうか? それとも、サーバーサイドに待ち受けプログラムを常駐させ クライアントからはHTTP経由等で情報を投げて、insert・Update は、サーバーサイドプログラムが行う様な2段構えにしなければ ならないのでしょうか? ご存じの方おられましたら教えてください。

  • cloneNodeするとサイズが増える

    データベースからXML文書のテンプレートを取得し、それを編集して出力するプログラムを作っています。 性能要件のため、「一度取得したXMLはメモリにキャッシュしておき、2回目以降はキャッシュされたXMLを再利用する」仕組みにしています。 public class Entity{ private Element XML; public Element getXML(){ return XML.cloneNode(); } public void setXML(Element XML){ this.XML = XML.cloneNode(); } } public class Dao{ public Element getXML(){ //DBにアクセスしてXML文書を取得する処理   return XML; } } public class Main(){ private Dao dao; public void outputXML(Entity entity){ Element XML = entity.getXML; if (entity == null){ XML = dao.getXML entity.setXML(XML) }   //以下XMLを編集して出力する処理 } } get時とset時にcloneNodeすることで、保存されたテンプレートは書き換えられない……という事を期待し、実際その処理はうまく行っていたのですが 動作させているうちにメモリリークが発生し、調査してみるとどうやらcloneNodeが実行されるたびに、EntityのフィールドのElementオブジェクトの容量が増加している様子… 一体なぜこのような現象が起きているのでしょうか? また、これを回避する方法はあるでしょうか。 javaのバージョンは1.6 データベースはOracle Databaseを使用しています よろしくおねがいします。

    • ベストアンサー
    • Java
  • データベースについて!(初心者です)お願いします!

    印刷会社勤務です。 現状、制作現場にはMacしかないのですが 「時代の流れに対応して、Windowsを導入する!」 ということになりました。 印刷会社にwinを導入するにメリットは ・winデータのそのままの活用 ・データベース活用 の2つだそうです。 で、わからないのが「データベース」なのです。 政府がe-japan構想を発表し、XML・・・あたりまで調べましたよくわかりませんでした。。 私はwinを導入し例えば 「大手電機部品メーカーなど大量の部品を扱っている企業に、マニュアル等をデータベース化し管理します。膨大なデータから、印刷したいリストののみを簡単に検索できます!修正なんかも楽々です!」 みたいなことを営業でアピールしたいと思っているのですがこれはXMLでできるのしょうか? また、なにかソフトを使ってつくるのでしょうか? メモ帳ににタグ打ちするのでしょうか? そもそもデータベースってこんな使い方ができるのでしょうか? XMLに何でも良いのでいろいろと教えてください! よろしくお願いします! 乱筆・長文失礼しました。

    • ベストアンサー
    • XML
  • VB2005+Oracleのシステム構築について

    こんにちは VB2005+Oracleを利用して社内向けのシステム開発を行おうと考えているのですが VBで開発したEXEファイルと.NET Frameworkは各クライアントにインストールする として、Oracleも必ずクライアントにインストールしなければ動かないのでしょうか? 今までのクラサバのシステムでは、Oracleクライアントのインストールは必須 になっていましたが、.NETになっても必須になってしまうのかどうかがいまいち 理解できていません。 今、調べた限りではASP.NETでブラウザを使用したアプリケーションならクライアント はインストール不要となっているようですが、Windowsフォームが使用できない(?) ので操作の面で少し不便かなと思っております。 ASP.NETのようなクライアントにデータベースソフトが不要な環境で、なおかつVB2005 を利用したアプリケーションを作成するということは、やはり不可能でしょうか? もし、可能であれば必要な環境など教えていただけると助かります。

  • VBでの実行時エラー’429’について

    お世話になります。 PC環境はWindowsXP SP2です。 VB6.0のexeから.NETのDLLを利用する・・・というのをしているのですが、 3台のPCのうち、一台だけどうしても「実行時エラー'429'ACtiveXコンポーネントはオブジェクトを作成できません」というメッセージが出て異常終了になってしまいます。 この一台だけOSから再インストールし直しても動かず、困っています。 .NETのdllにデバッグ用のメッセージを組み込んでみたのですが、 メッセージが出ないので、どうやらDLLコール時にエラーとなっているようです。 Windows ScriptのVB Scriptを最新にしてみたり、 system32配下にdao360.dllがなかったので、追加してregsvr32コマンドにてレジストリ登録したりしたのですが、 どうも上手くいきません。 お忙しいところ恐れ入りますが、 何か思い当たる点などありましたらご教授願えませんでしょうか? よろしくお願いします。

専門家に質問してみよう