前回のADODCのプロパティ・・・とかDataGridが・・・とか、
なにせ初心者の作るVBデータベースは、
うまくいかないことだらけです。
もうちょっと、ほんとにわかりやすい解説書とか
ちょっと知ってる先生がいたらいいんですけどね。
さて・・・
ADODCのプロパティで、ConnectionStringを変更する
というところまでやりました。
ところが、開発環境と実行環境の違いで
ADODCがうまくいかないわけでした。
いろいろ教えてもらったところ、
ADODCは、動的にDBへ接続するほうが得意(?)らしく
ADODCのプロパティにある、ConnectionStringも
動的に書き換えればうまくいく。
ということがわかりました。
・・・動的(どうてき)って?????
つまり、プログラムが実行しながら書き換える。
(動きながら・・・ってことか?)
ということです。
これに対して性的というのは
・・・いや、静的(せいてき)の間違いです。
プログラムが動いてないときに(静かなときに?)ということ
ですね。
・・・で、話を戻して「動的」に書き換えるわけですが
プログラムを実行したとたんにエラーが出てもらっては
困ります。
なので、ADODCのConnectionStringは「 空白 」のままで
保存してください。(下記赤枠部)
![]()
データグリッドのプロパティも「 空白 」にしておきます。
これをやっておかないと、フォームをロードしようとしたとたんに
エラーになります。
![]()
・・・で、どんなふうにするかというと
ちょっと実際のコードに近い物で書いてみます。
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のデータベースだったのでした。
そうそう、コメントはご自由にお願いしますね!
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。