2006年06月13日

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





前回のADODCのプロパティ・・・とかDataGridが・・・とか、
なにせ初心者の作るVBデータベースは、
うまくいかないことだらけです。

もうちょっと、ほんとにわかりやすい解説書とか
ちょっと知ってる先生がいたらいいんですけどね。


さて・・・

ADODCのプロパティで、ConnectionStringを変更する
というところまでやりました。

ところが、開発環境と実行環境の違いで
ADODCがうまくいかないわけでした。

いろいろ教えてもらったところ、
ADODCは、動的にDBへ接続するほうが得意(?)らしく
ADODCのプロパティにある、ConnectionStringも
動的に書き換えればうまくいく。

ということがわかりました。

・・・動的(どうてき)って?????

つまり、プログラムが実行しながら書き換える。
(動きながら・・・ってことか?)
ということです。


これに対して性的というのは
・・・いや、静的(せいてき)の間違いです。

プログラムが動いてないときに(静かなときに?)ということ
ですね。



・・・で、話を戻して「動的」に書き換えるわけですが
プログラムを実行したとたんにエラーが出てもらっては
困ります。

なので、ADODCのConnectionStringは「 空白 」のままで
保存してください。(下記赤枠部)

ADODCのプロパティ

データグリッドのプロパティも「 空白 」にしておきます。
これをやっておかないと、フォームをロードしようとしたとたんに
エラーになります。

DataGridのプロパティ



・・・で、どんなふうにするかというと
ちょっと実際のコードに近い物で書いてみます。



Private Sub Form_Load()

Dim strADOCS As String 'Connection String
Dim strADORS As String 'ADODC Record Source

strADOCS = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\[ここにデータベース名];" & _
"Persist Security Info=False"
strADORS = "select * from [ここにDBのテーブル名]"

With datPrimaryRS
.RecordSource = strADORS
.ConnectionString = strADOCS
Set grdDataGrid.DataSource = datPrimaryRS
.Enabled = True
End With

End Sub




・・・ちょっと実際のコードそのままではないですが
こんな感じでやるとうまくいきました。

動的に(プログラムを実行して)フォームがロードされたときに
全ての接続を設定してやるわけです。
最初はDataSouce も ConnectionStringも「空白」。

ここがポイントかもしれませんね。


とにかく開発環境でADODCのプロパティに設定したデータベースに
いつ接続されるのか? それがわかりませんでした。
フォームのロードより、イニシャライズよりも先にDBへ
接続されてしまうので、接続文字列は空白にしておく必要があります。


ということで、初心者には分かるはずもない
VBのデータベースだったのでした。

そうそう、コメントはご自由にお願いしますね!


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

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

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


※画像の中の文字を半角で入力してください。

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

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

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

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

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