Access2000でVBAを使用していますが、変数にある値を代入してその値をアプリケーションの再立ち上げ後また利用したいのですが、何かよい方法はありませんか?

説明ではわかりにくいので実際の流れで示します。

Dim DiskNo AS string

DiskNo = s459a      's459aというには使用中に変わっていきます。

 ここでいったんAccessを終了し、次回使用するとき

  変数 DiskNoに最後に代入された値(s459a)を保持している。

こんな使いかたなのですが、方法はどんなやり方でもかまいません。変数の値をを次回も利用するにはどうしたらよいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

いちばん簡単なのはDBのテーブルに持つことでしょうね。


カウンタテーブルにキーと値という項目を持たせます。
キーの値にKEYとカウンタに0を初期値(この初期値はなんでもいいですが)

後は処理開始時にキー:KEYでカウンタの値をとってそれを変数にセットする。ADOかRDOを使うこと。ここは分かりますよね。

処理終了時にキー;KEYで最終カウンタ値をアップデートする。
これも簡単なので省略します。

これならDBですから端末等に影響されませんし。

参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=59697
    • good
    • 0
この回答へのお礼

フィールドに追加するのではもったいないし、と思っていましたが。なるほどこれだと分かりやすく自分でもできるような気がします。
どうも有難うございます。

お礼日時:2001/04/24 16:25

「どこに保存しておくか」だけが問題なのでしょう。



・データベースに保存しておく
・ファイル(テキストファイルなど)に保存しておく
・レジストリに保存しておく

あたりが思い付きます。
それぞれどうやって実装するかという点まで情報が必要ですか?
    • good
    • 0
この回答へのお礼

データベースに保存することにしました。
分からないときはご質問させてもらうかもしれませんが、そのときはよろしくお願いします。
とても早く回答いただき有難うございました。

お礼日時:2001/04/24 16:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qサブフォームに変数を代入し、RecordSourceの値を取得したい

サブフォームに変数を代入し、RecordSourceの値を取得したいのですがうまくいきません。

Sub test1()
Dim サブフォーム As String
Dim フォーム As String

フォーム= "土台"
サブフォーム = "フォーム1"

MsgBox Form_フォーム1.RecordSource
End Sub
*******************************************************************
Sub test2()
Dim サブフォーム As String
Dim フォーム As String

フォーム= "土台"
サブフォーム = "フォーム1"

MsgBox Form_フォーム1.RecordSource
MsgBox Forms(フォーム).Controls(サブフォーム).RecordSource

End Sub

オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)
*******************************************************************
Sub test3()

Dim サブフォーム As String
Dim フォーム As String

フォーム = "土台"
サブフォーム = "フォーム1"

MsgBox Forms(サブフォーム).RecordSource

End Sub

実行時エラー'2450'
マクロの式またはVisual Basic コート゛で参照されている 'フォーム名'フォームが見つかりません。
*******************************************************************
test1~3のうち
test1のみはうまくいくのですが
変数を代入したいです。
ヘルフ゜のには
Forms![受注]![受注サブフォーム].Formとなってますが
これじゃ変数を代入できないですよね。

どうすればサブフォームに変数を代入しつつ、RecordSourceの値を取得できるのでしょうか?

よろしくお願いします。

サブフォームに変数を代入し、RecordSourceの値を取得したいのですがうまくいきません。

Sub test1()
Dim サブフォーム As String
Dim フォーム As String

フォーム= "土台"
サブフォーム = "フォーム1"

MsgBox Form_フォーム1.RecordSource
End Sub
*******************************************************************
Sub test2()
Dim サブフォーム As String
Dim フォーム As String

フォーム= "土台"
サブフォーム = "フォーム1"

MsgBox Form_フォーム1.RecordSource
MsgBox Fo...続きを読む

Aベストアンサー

No.1です。

> この「.Form」はどこにつければいいのでしょうか?

えーと・・・すみません、後半に余計な説明が多すぎたようです(汗)
一応、前回回答の前半部分に書いていたんですが、式としては

 MsgBox Forms(フォーム).Controls(サブフォーム).Form.RecordSource

になります。

蛇足ついでに、式の構成を簡単に(?)説明すると、
 Forms(~)
  展開済のフォーム群(=複数形:Formsコレクション)から、指定された
  名前のフォームを参照
 Controls(~)
  そのフォーム内のコントロール群(=複数形:Controlsコレクション)から、
  指定された名前のコントロールを参照
 Form.RecordSource
  指定したコントロール(サブフォーム)の、フォームとしてのプロパティ
  (ここではRecordSource)を参照
  (「Form」プロパティを経由しないと、サブフォームの「RecordSource」
   プロパティを参照できない、ということ)
ということです。

※「Forms」と「Form」は英単語上は前者が後者の複数形という関係ですが、
 プログラム上での関連性は薄いので、前者が前側につき、後者が後ろ側
 につくのは、「コレクションやプロパティの使い方・定義がそうなって
 いるから」として割り切るしかないかと思います(汗)


・・・また余計な説明が長くなりすぎた気がしますが(汗)、参考まで。

No.1です。

> この「.Form」はどこにつければいいのでしょうか?

えーと・・・すみません、後半に余計な説明が多すぎたようです(汗)
一応、前回回答の前半部分に書いていたんですが、式としては

 MsgBox Forms(フォーム).Controls(サブフォーム).Form.RecordSource

になります。

蛇足ついでに、式の構成を簡単に(?)説明すると、
 Forms(~)
  展開済のフォーム群(=複数形:Formsコレクション)から、指定された
  名前のフォームを参照
 Controls(~)
  そのフォーム内のコントロー...続きを読む

QAccess2000 :VBAプログラムからフォーム(テキスト部)に値を代入

VBAプログラムで日付を算出し、その日付データを
フォームのテキスト部に代入するプログラム?
方法はありますか?

よろしくお願いいたします。

Aベストアンサー

できますょ。
システム日付でよければ
me.[テキスト名]=date

計算してきた値なら
me.[テキスト名]=[変数]

QAccessでテーブルの値をテキストボックスに代入するには?

[ID][文字列]の2つのフィールドからなる単純なテーブルがあり、削除クエリを併用して常に最新のデータしか格納されていない状態に工夫できました。(データは常に1つ)
そこでフォーム上にあるテキストボックスにこのテーブルの[文字列]フィールドのデータを表示させたいのですが、
どうしたらよいでしょうか?

また、このテーブルの[文字列]フィールドのデータを直接変数として使いたい場合はVBAでどのように記述すればよいのでしょうか?

Aベストアンサー

テーブルに"データは常に1つ"ならコントロールソースに
「=DLOOKUP("文字列のフィールド名","テーブル名")」
IDごとに"データは常に1つ"ならコントロールソースに
「=DLOOKUP("文字列のフィールド名","テーブル名","[ID]='" & Me.ID & "'")」

Dlookup関数のヘルプ
http://office.microsoft.com/ja-jp/assistance/HP010496551041.aspx

QACCESS 値の代入

テキストボックスの値の代入をさせたい下記

例1
Aのテキストボックス Is not Null
Bのテキストボックス null

結果
Cのテキストボックス OK

例2
Aのテキストボックス null
Bのテキストボックス null

結果
Cのテキストボックス NG

例3
Aのテキストボックス Is not Null
Bのテキストボックス Is not Null

結果
Cのテキストボックス NG

Aベストアンサー

一応、パターンからして、
要するに以下のようなことがしたいのだろうと。
Cのフォーカス取得時のイベントで、

Private Sub C_Enter()
If Not IsNull(Me!A) Then
If IsNull(Me!B) Then
Me!C = "OK"
End If
End If
If IsNull(Me!A) Then
If Not IsNull(Me!B) Then
Me!C = "OK"
End If
End If
If IsNull(Me!A) Then
If IsNull(Me!B) Then
Me!C = "NG"
End If
End If
If Not IsNull(Me!A) Then
If Not IsNull(Me!B) Then
Me!C = "NG"
End If
End If
End Sub

QAccess 値の代入について

Access2002を使用しています。
テーブルをリンクして使用しているのですが、
よそのデータベースから引っ張ってきたテーブルに
自動的に値(文字列です)を入れたいです。
入れるタイミングは、フォームを開いたときがいいのですが、
どうすればいいでしょうか?

マクロでやろうとしたらうまく行きませんでした・・・。

Aベストアンサー

サブフォームのフィールドに代入したのならサブフォームのプロパティのイベント
に記述してください。
親フォームからサブフォームのフィールドではなくサブフォーム自体のイベントへ
代入のマクロを。


人気Q&Aランキング

おすすめ情報