
Access97でグローバル変数を持ちたいと思ったのですが、
それらしきものが見つかりません。
Public変数というものがあるのですが、これはプロシージャ-単位で
しか定義できないようです。
ひとつのデータベース全体でグローバルに定義できる定数を持ちたいのです。
たとえば、データベース内で頻繁に読み込む必要があるファイルのPATH
"C:\Program Files\Netscape\Communicator\"を
固定で持っておきたい。
何か方法はないでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
もし、定数でいいのであれば、
標準モジュールに、
Const DATAPATH = "C:\Program Files\Netscape\Communicator\"
のように書けば、どこからでもDATAPATHと言う名前で参照することができます。
変数である必要があるのなら、同じく標準モジュールに、
Global glbDataPath as String
Public Sub PathSet()
glbDataPath = "C:\Program Files\Netscape\Communicator\"
Exit
と書いておき、AutoExecマクロのモジュールを開くでPathSetサブルーチンを呼び出せばよいと思います。
この回答への補足
すみません。基本的なことも分からずちょっと混乱しています。
プロシージャとモジュールの概念を間違っていましたので整理します。
aptivaさんのご指摘は、モジュール内で有効な手法なのでしょうか?
それとも、データベース全体(すべてのモジュール)から
参照可能なのでしょうか?
データベースの「モジュール」タブで新規にモジュールを作成しても
他のクラスモジュールから参照することができません。
基本的に標準モジュールの作成方法が間違っているような気もします!?
クラスモジュールはたくさん作成しているのですが、
標準モジュールは作ったことがありません。
基本的な質問で申し訳ありませんが、ご助言お願いします。
No.2
- 回答日時:
aptivaさんからすでに回答が出ていますが、まだ補足がないようですので代わりに私が、
標準モジュールで定義してやれば、データベース全体から参照が可能です。
具体的には、
まず、モジュールタブで新規作成をクリックして、標準モジュールを開きます。
定数として定義するなら、標準モジュールのモジュール レベルで (宣言セクション:Option Explicitの次の行に)、
Public Const DataPath As String = "C:\Program Files\Netscape\Communicator\"
と記述してやれば、定数 DataPath が使えます。
変数として定義するなら、宣言セクションに
Public DataPath As String
と記述して、Public変数を定義してやり、
さらに、以下のような Functionプロシージャをつくり、
Public Function PathSet()
DataPath = "C:\Program Files\Netscape\Communicator\"
End Function
これを AutoExecマクロで実行(プロシージャの実行でプロシージャ名に PathSet() と記述、マクロ名を“AutoExec”とする。)してやれば、データベースを開く際に、変数にパスの内容が代入されます。
HELP で、Const ステートメント、Public ステートメント、AutoExec マクロ を確認してみてください。
具体的に分かりやすくご説明していただきありがとうございました。
しかし、まったく同じようにしてもできませんでした。
でも、お蔭様で解決しました。
単純に定数名(変数名)を既にクラスモジュールでpublic宣言して使用していた
ものを使ってしまっていただけでした。
お騒がせいたしました。
そして、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
アクセスVBAのMe!と[ ]
Access(アクセス)
-
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
AccessのRefresh・Requery・Repaintの違い
Access(アクセス)
-
4
Access-VBAのPublic変数について =基本的な事です=
Visual Basic(VBA)
-
5
Access サブフォームでの選択行の取得
その他(データベース)
-
6
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
7
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
8
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
9
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
10
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
11
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
12
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
13
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
14
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
15
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
16
VBAで3秒だけ時間を止めたい
Visual Basic(VBA)
-
17
親フォームからサブフォームのレコードソースを設定
Access(アクセス)
-
18
Access コンボボックスの値をクリアしたい。
PowerPoint(パワーポイント)
-
19
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
20
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
関連するQ&A
- 1 Access:DataBaseオブジェクト型の変数の宣言
- 2 Access97をAccess2000に変換したい
- 3 Access97からAccess2003
- 4 ACCESS2000→ACCESS97に変換した際のエラー
- 5 Access97 → Access2002 実行時に出るエラーについて
- 6 Access97からAccess2003に移行したときの問題点
- 7 access97で作成したエクセルインポート機能がaccess2003で機能しません
- 8 Access97のテーブルをExcel97にエクスポートしましたが・・・
- 9 Access2000でAccess97のテーブルを利用する方法
- 10 Access97からAccess2003にバージョンアップするには
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
エクセルVBAでUserFormを起動し...
-
5
VBA プロシージャの名前の取得
-
6
excel/vba/public変数
-
7
Excel:ThisWorkbookオブジェク...
-
8
VBA 「文字が入っていたら、...
-
9
Accessでグローバル変数を宣言...
-
10
DBMS_OUTPUT.PUT_LINEを実行し...
-
11
Access2016 VBA ボタンのイベン...
-
12
【Excel VBA】 WorksheetやRa...
-
13
エクセルのユーザーフォームで...
-
14
sp_executesqlを実行してもテー...
-
15
Access VBA ラベル印刷開始位置...
-
16
ACCESS マクロをモジュールに変...
-
17
ACCESS2007インポート時の空白...
-
18
C#でストアドの呼び出し方法を...
-
19
VBA ユーザーフォームの値の取...
-
20
SQL ServerのストアドでUPDATE...
おすすめ情報