モジュール内に関数!?

解決


ゆか  2006-01-20 19:51:41  No: 129701

VB6でAccessにデータを登録したり修正したり削除したりするものを作っています。普通にできたのですが、仕様を変えて作るよう言われました。その仕様とは、モジュールを追加してその中にDBを開く関数を作って、フォームでその関数を使ってDBを開かせるというものです。今の私のレベルでそのような高度なことができないで困ってます。わかる方いましたら教えてもらえないでしょうか?もし「簡単すぎる」質問をしてしまってたらごめんなさい。


いな  2006-01-20 19:58:04  No: 129702

>わかる方いましたら教えてもらえないでしょうか?

・フォームでその関数を使う
  ⇒おそらく、フォームに「接続」ボタンなどを作って、
    そのボタンのクリックイベントにDB接続処理を記述


ガッ  2006-01-20 19:59:07  No: 129703

??
1  モジュールに関数を作る
2  モジュールにDBを開かせる関数を作る
3  モジュールにDBを開かせる関数を作り、フォームから呼び出す
4  その他
このうちのどれが知りたいのですか?
(DBは開けたのだろうから…2ではないきがする
かといって、1と3はすでに分かっているだろうから…??)


もげ  2006-01-20 20:06:11  No: 129704

>普通にできたのですが
'普通って何(^^;?
ちなみに、どのように作ったのですか?

例1)DataコントロールとDBGridを使って、
  ほとんどコーディングなしで作った

例2)DBを開く処理も表示する処理も、フォームのイベントプロシージャ内
  に全部だらだらと書いた。

例2なら適度に関数化して標準モジュールに移すだけかと。


ゆか  2006-01-20 20:59:20  No: 129705

えっと、私が作ったのは

    'どこの階層からか
    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番を作りたいです。つまりは上に書いた処理をモジュール内に書けばいいんだと思うんですけど、それを関数にしてフォームから呼び出すという処理がわかりません。ごめんなさい。


葉月α  2006-01-20 21:40:14  No: 129706

恐らくですが
フォームにボタンを貼り付けて
クリック処理の中に接続するコードとかを書いたから
注意されたのでしょう

という話なら
モジュールの追加(basAccess.bas等を作成)というのが出来るのでその中に
Public Function DbConnect 等のような関数(戻り値はBOOL型)
を作成しその中にコネクションするだけの処理を作成しなさいということですかね

で・・・ボタンのクリック処理には
If Not DbConnect() THEN
    エラー処理
End If

と簡素化させよう!ということだと思われ
Publicで関数を作ればどこのフォームやモジュールからでも
関数を呼び出すことが出来ます

この時IDやパスワードやファイルパスがいるなら引数で渡せるようにすればよろしいかと・・・


ゆか  2006-01-20 22:10:59  No: 129707

葉月αさんありがとうございます。葉月αさんの言われるとおりに注意を受けてました。一度作ってみますね。また結果を報告します。


ゆか  2006-01-20 23:43:50  No: 129708

できました。みなさんのおかげです。ありがとうございました。
親切な方ばかりでうれしかったです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加