初心者にはつらい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のデータベースだったのでした。
そうそう、コメントはご自由にお願いしますね!

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事