VB6でAccessにデータを登録したり修正したり削除したりするものを作っています。普通にできたのですが、仕様を変えて作るよう言われました。その仕様とは、モジュールを追加してその中にDBを開く関数を作って、フォームでその関数を使ってDBを開かせるというものです。今の私のレベルでそのような高度なことができないで困ってます。わかる方いましたら教えてもらえないでしょうか?もし「簡単すぎる」質問をしてしまってたらごめんなさい。
>わかる方いましたら教えてもらえないでしょうか?
・フォームでその関数を使う
⇒おそらく、フォームに「接続」ボタンなどを作って、
そのボタンのクリックイベントにDB接続処理を記述
??
1 モジュールに関数を作る
2 モジュールにDBを開かせる関数を作る
3 モジュールにDBを開かせる関数を作り、フォームから呼び出す
4 その他
このうちのどれが知りたいのですか?
(DBは開けたのだろうから…2ではないきがする
かといって、1と3はすでに分かっているだろうから…??)
>普通にできたのですが
'普通って何(^^;?
ちなみに、どのように作ったのですか?
例1)DataコントロールとDBGridを使って、
ほとんどコーディングなしで作った
例2)DBを開く処理も表示する処理も、フォームのイベントプロシージャ内
に全部だらだらと書いた。
例2なら適度に関数化して標準モジュールに移すだけかと。
えっと、私が作ったのは
'どこの階層からか
StrKAI = App.Path
StrKAI = StrReverse(StrKAI)
StrKAI = Split(StrKAI, "\")(0)
StrKAI = StrReverse(StrKAI)
'ワークスペースを定義
Set WspWORKS = DBEngine.Workspaces(0)
'データベース
Set DbsDATAB = WspWORKS.OpenDatabase("../DB/Project2.mdb")
というような感じです。もげさんの例2のとおりだらだら作った感じです。
ガッさんの3番を作りたいです。つまりは上に書いた処理をモジュール内に書けばいいんだと思うんですけど、それを関数にしてフォームから呼び出すという処理がわかりません。ごめんなさい。
恐らくですが
フォームにボタンを貼り付けて
クリック処理の中に接続するコードとかを書いたから
注意されたのでしょう
という話なら
モジュールの追加(basAccess.bas等を作成)というのが出来るのでその中に
Public Function DbConnect 等のような関数(戻り値はBOOL型)
を作成しその中にコネクションするだけの処理を作成しなさいということですかね
で・・・ボタンのクリック処理には
If Not DbConnect() THEN
エラー処理
End If
と簡素化させよう!ということだと思われ
Publicで関数を作ればどこのフォームやモジュールからでも
関数を呼び出すことが出来ます
この時IDやパスワードやファイルパスがいるなら引数で渡せるようにすればよろしいかと・・・
葉月αさんありがとうございます。葉月αさんの言われるとおりに注意を受けてました。一度作ってみますね。また結果を報告します。
できました。みなさんのおかげです。ありがとうございました。
親切な方ばかりでうれしかったです。
ツイート | ![]() |