2006年06月02日

初心者にはつらいVBのデータベースって・・・





最近また、VBやってます。
とにかく1年に一回くらいしか仕事しないので、
さっぱり覚えがないことだらけです。

VB6を使っていてかなり前に、
データベース(以下、DBと省略)を使いたくて
ADODCとDataGridを使ったことがあります。

とりあえず一覧表が出せて、編集や確認ができれば・・・
ということで作りました。

フィールド件数なんかも100有るかないかぐらいで
多くないし、スタンドアロンでPC1台こっきりで使うので
まあこれでよかったです。

ところが、その時に困ったのは
開発環境と運用環境が違うと、DBへアクセスできない・・・
DBはmdb形式のACCESSで作ったテーブルが3つほどの
単純なもの。

そこでまずフォームを作りました。
フォームにはDataGridコントロールとADODCが貼り付けてあります。
あとはDB用のボタン・・・

DataGridとADODCのフォーム


・・・で、いろいろ勉強しながらやったんですが、開発環境で
プロジェクトやフォーム、DBをまとめて一つのフォルダで管理しようと
一カ所にまとめていました。
でもそれで「F8」キーなんかでステップ毎に実行していくと
DBが見つからないというエラーが。

DBへの接続文字は、ADODCのプロパティにある ConnectionStringで
指定しますが、これを今の一括管理しようとしているフォルダ内の
DBに割り当てると動きません。

・・・なんで????

ちなみにその時は、DBファイル名をフルパス(C:\○○\▲▲\DB.mdbのように)
指定せず、DB.mdbというファイル名だけにしていました。
それでDBが見つからない・・・?

どうやら、アプリケーションパス(App.Path) は、
プロジェクトのあるフォルダを読んでくるみたいですが
実行ファイルはVB98フォルダ内のVB6.EXE・・・
この違いがうまくいかないようです。
ということは開発環境での問題みたいです。

そこで・・・

■対策1■
プロジェクト一括管理フォルダ内のDBを、
VBのインストールされたフォルダへコピーしておく。

これでエラーが出なくなりました。

よしよし・・・っと。


ん? これは?

ははぁ〜???・・・

これって、管理フォルダの中のDBを読んでないことになるんでは?


いや全くそのとおりでした。失敗です。

そこで
■対策2■
ADODCのプロパティからConnectionStringを変えてみました。
ConnectionStringはADODCをDBに接続するための文字列です。

ADODCのプロパティ

ここに、
Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\○○\▲▲\DB.mdb";Persist Security Info=False

という感じで入力します。

するとこんどはVB98フォルダ内にDBがなくても、ちゃんとアクセスできます。
じゃあ、これをバックアップのために別のフォルダ名で保存して・・・

よしよし・・・っと。


ん? これは?

ははぁ〜???・・・

これって、フォルダ名を変えたら使えないんじゃないか?!


いや全くそのとおりでした。
DB.mdbを絶対パスで指定したので、コンパイルしてEXEを作ったとしても
これじゃあ動きません。

とほほです。

このときはここであきらめましたんですが、実は解決策がまだあったんです。

続きは別記事で。





posted by やすだ at 00:00| Comment(0) | TrackBack(0) | プログラム VB | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/18724802
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック

ブログ村ランキングはこちら!
ブログランキング・にほんブログ村へ

RSS取得
Copyright(C)シーケンス制御で好きなだけPLC,PC,NCを使ってみよう
 by アネックソフト(株)安田

FANUC製のラダーで困ったらこちらをどうぞ→ PMCラダー屋.COM
ブログ記事は著作物です。記事や写真・デザインの無断引用・転用は法律で処罰されます。具体的には「10年以下の懲役若しくは1千万円以下の罰金又はその併科、法人は3億円以下の罰金3年以下の懲役もしくは300万円以下の罰金」が課せられます! 気をつけましょう!
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。