ACCESS VBAシステムのメンテナンスと30分ごとの更新処理について

このQ&Aのポイント
  • ACCESS VBAのシステムのメンテナンスを任されています。30分ごとに自動で更新処理を行うためにはどのようにすれば良いでしょうか?また、制限付きユーザーで使用する場合の注意点についても教えてください。
  • ACCESS VBAのシステムのメンテナンスを任されている方への質問です。現在、システムではフォームのボタンが押されるたびにタイマー処理を行っていますが、新しい仕様として30分ごとに自動で更新処理を行うことになりました。どのようにすればこの30分ごとの更新処理を実装できるでしょうか?また、制限付きユーザーで使用する場合にはどのような注意点があるのでしょうか?
  • ACCESS VBAのシステムのメンテナンスや30分ごとの自動更新処理について質問があります。現在、システムではフォームのボタンが押されるたびに処理が行われていますが、新しい仕様として30分ごとに自動で更新処理を行う必要があります。どのようにしてこの自動更新処理を実装すれば良いでしょうか?また、制限付きユーザーで使用する場合にはどのような制約があるのでしょうか?
回答を見る
  • ベストアンサー

30分ごとに更新

現在前任者の作った ACCESS VBAのシステムのメンテナンスを任されています。 このシステムではフォームのボタンが押されるたびに (1)適当な値をTimerIntervalにセット。 (2)処理フラグ変数に値をセット。 (3)タイマー処理時に処理フラグ変数の値によっていろいろな処理を行う。 というものなのですが、 今回新しい仕様として、30分ごとに自動で更新処理を行う事になりました。 そこで教えていただきたいのですが、30分ごとに更新させるにはどのようにすればよいでしょうか? (ボタンを押すたびにtimerintervalが変更されてしまうのでいい時間の計り方がわからないです。) 更新するための更新ボタンはフォーム上にあります。 またこのシステムのなのですが、windowsの制限付きユーザーで ログインした状態で使用しようとすると、 「読み取り専用です」 とでて使用できないのですが、VBAを使ったシステムは Windowsの制限付きユーザーでは使用できないのでしょうか? (管理者権限のあるユーザーでログインすると使用できます。) ACCESSのバージョンは2003を使用しています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.4

くどいようですが、混同するとよろしくないので再度確認させて頂きます。 > ユーザ権限は管理者権限を持ったユーザーでログインすると > すべての項目にチェックがついているのですが、 > 制限付きユーザーでログインすると > ファイルの読み取り、削除、書き込みなどの部分のチェックが > 外れてしまっているようです。 これは Access で mdb ファイルを開いたときに Access のメニューから 「ツール」→「セキュリティ」→「ユーザ/グループの権限」 として確認された場合のことでしょうか? この場合は Access のほうで設定すればよろしいと思われます。 ただし、これは Windows へログインするユーザとは関係ないと思われます。 (1) 「ファイルのアクセス権限」の表示 > 使用しているOSはWindows XP Professionalです。 「mdb ファイルのアクセス権はどうやったら見ることができるのでしょうか?」に ついての回答になります。 ※ これは一般的なファイルのアクセス権の設定と同じです。 Windows XP Professional : 機能別紹介 - アクセス権の管理 http://www.microsoft.com/japan/windowsxp/pro/business/feature/security/privilage.mspx 特集:Windows XPとは何か? 13.ファイルのセキュリティ設定 http://www.atmarkit.co.jp/fwin2k/special/winxp_over/winxp_over_14.html 上記 URL の方法をご覧になってファイルのアクセス権を確認なさればよろしいかと思います。 (2) 「読み取り専用」と出ることについて > 別のディレクトリに移動させても >「読み取り専用です」 # 移動だとアクセス権が変わらないので、制限ユーザがフルアクセス可能なディレクトリへコピーを # して下さいと書いたのですが…… また、制限されているユーザが書き込み権限を持っていないディレクトリへのコピーは ディレクトリのアクセス権が継承される為、読み取りの専用でしか開けないと思われます。 おそらく次の方法でよろしいのではないかと思われます。 (1) の方法でファイルのアクセス権が見えるようになったら、mdb ファイルへ制限ユーザへの 書き込み権限を追加して下さい。 # mdb ファイルをバックアップをされた上でデバッグされているとは思いますが、 # 必ず mdb ファイルをバックアップしてから行ってください。

dice_2000
質問者

お礼

アクセス権を変更したら無事使えるようになりました。 何度も何度も本当にありがとうございました。

その他の回答 (3)

  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.3

> mdb ファイルのアクセス権はどうやったら見ることができるのでしょうか? お使いの OS はなんでしょうか? それと制限ユーザでログインした時にその mdb ファイルを制限ユーザが所有している 別のディレクトリなどにコピーして開いた場合にはどうなりますか? # 構成がどうなっているかわからないので mdb ファイル単体で動作可能なものとして。

dice_2000
質問者

お礼

使用しているOSはWindows XP Professionalです。 別のディレクトリに移動させても 「読み取り専用です」 というメッセージが出て使えません。 (現在はC:ドライブ直下に新しくフォルダを作ってそこにおいてあります。) 何度もすいません。

  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.2

> windowsの制限付きユーザーでログインした状態で使用しようとすると、 > 「読み取り専用です」とでて使用できない *.mdb ファイルのアクセス権はどうなっているのでしょうか? # Access でもユーザ権限は設定できますが、それは Windows のログイン # ユーザとは関係なかったと思われます。 > ACCESSでも別のTimerを作ることができるのでしょうか? MS Access の場合はフォーム毎に Form_Timer() のひとつだけではないでしょうか? (通常であれば) 自動更新処理専用フォームを新しく作り Form_Load() で Me.TimerInterval を適宜 変更して Me.Visible = False 等と設定して隠しておいてはいかがなのでしょうか?

dice_2000
質問者

お礼

>自動更新処理専用フォームを新しく作り Form_Load() で >Me.TimerInterval を適宜 >変更して Me.Visible = False 等と設定して隠しておいてはいかが>なのでしょうか? Timer処理は別のフォームを作ることで解決しました。 ありがとうございます。 >.mdb ファイルのアクセス権はどうなっているのでしょうか? mdb ファイルのアクセス権はどうやったら見ることができるのでしょうか? ユーザ権限は管理者権限を持ったユーザーでログインすると すべての項目にチェックがついているのですが、 制限付きユーザーでログインすると ファイルの読み取り、削除、書き込みなどの部分のチェックが 外れてしまっているようです。

  • B_Taka-B
  • ベストアンサー率50% (1/2)
回答No.1

別のTimerオブジェクトを使用し、 そちらでIntervalを設定したらどうでしょう

dice_2000
質問者

お礼

ACCESSでも別のTimerを作ることができるのでしょうか? もう少し調べてみます。 ありがとうございます。

関連するQ&A

  • 画面のフィールドの値を共通処理関数で読み書きしたい

    Access2013 VBAで、現在システムを開発しているところですが、 フォーム上の帳票のボタンを押した時の処理が、複数の画面で共通なので共通処理として使用したいと考えていますが、その時に、画面のフィールドの名前を変数に変えてどのように画面のフィールドに値をセットすればよいでしょうか。 よろしくお願いします。

  • フォームのフィールドの参照の仕方

    Access2013 で、現在システムを開発しているところですが、 フォーム上の帳票のボタンを押した時の処理が、複数の画面で共通なので共通処理として使用したいと考えていますが、その時に、画面のフィールドの名前を変数に変えてどのように画面のフィールドに値をセットすればよいでしょうか。 よろしくお願いします。

  • 月々の更新回数を調べるには?

    いつもありがとうございます。 例えばですが、7月1日~7月31日までに データベースを更新した回数を求めて、制限するにはどうしたらよろしいでしょうか? ようするに会員制のページに更新回数を制限したいと思っています。 データベースへのアクセス回数は、なにかの変数に+=1で足して 行こうと思っています。 例えば、それが10になったときに、更新ボタンが押せないように するにはifなどで処理制御していきたいと思います。 わからないところは、1日~月末まで数えるということです。 よく、アクセスカウンターとかは月ごとにローテーションを組んで いますよね。 あんな感じで、毎月1日にリセットできるような感じです。 とても難しいと思いますが、どなたかお分かりになりましたら お願い致します。

    • ベストアンサー
    • PHP
  • SSISにて変数を使用したSQL実行タスクの更新結果について

    はじめまして。 現在、SSISを使用して開発を行っています。 そこで、変数を使用したSQL実行タスクを構築したのですが、 ご存知の方はご回答願います。 処理内容としては、batプログラムにてdtexecでvalueというパラメータに0.7と渡します。 その後、SQL実行タスクのSQLstatementにて「UPDATE sample SET flag = '1' WHERE a <= ?」というように、 aの値がvalue以下だったら、フラグを更新するようなSQLをくみました。 実行し、確認をしたのですが、SSISを構築した端末で処理を行うと正しく更新されるのですが、 ビルドしたdtsxをサーバー上等、他の端末で実行すると、a=0.7のデータに対してフラグが更新されません。 ProtectionLevel値には、DontSaveSensitiveをセットしてあります。 何かご存知の方は、ご教示願います。

  • Accessにてデータの更新

    Accessにて、フォームにボタンを作成し、クリックすると フォームのテキストボックスのデータを取得し、 テーブルのデータを更新するVBAを作りたいのですが、 mySQL = "UPDATE テーブル名 SET フィールド名 = '1234'" このようにすると、フィールドが1234のデータに更新されるのですが、 これを namae =Me!テキストボックス名 mySQL = "UPDATE テーブル名 SET フィールド名 = namae" とするとうまくいきません。 正しい書き方をお願いします。

  • EXCELのVBAについて

    エクセルのVBAでユーザーフォームに作ったテキストボックスに入力した値を、コマンドボタンによる「実行」とともに別に作った標準モジュールの変数として代入するにはどうすれば良いでしょうか? 具体的な流れは、 マクロ実行  ↓ ユーザーフォーム出現  ↓ テキストボックスに数字を代入→「実行」  ↓ 変数を代入された標準モジュールによる処理完了 というものです。 ご教授お待ちしております。

  • Access2003 VBAからの値の代入時に更新イベントを実行できない??

    access2003+WinXP_Pro環境です。 値の代入について質問させて頂きます。 フォーム上の値を同時に、開いている他のフォームから値を代入したのですが、 元フォーム上で更新時イベントに記述している値の代入が動作しません。 他のフォームのVBAから値の更新をした場合、どのように更新時イベントを設定すればよいのでしょうか?

  • アクセスのテーブル更新について

    アクセスのテーブル更新について ------------------ テーブル1 性  名   フラグ 地域 佐藤 太郎 1 鈴木 次郎 9 高橋 三郎 3 ------------------ テーブル2 地域 フラグ 関東 1 関西 2 海外 3 ------------------ テーブル3 性  名   フラグ 地域 田中 四郎 2    関西 ------------------ アクセス初心者です。エクセルはファイル操作のVBAをモタモタしながら組める程度です。 上記1から3のテーブル(以下T)がある場合の、以下2つの処理を行う方法が分からず困っています。 処理1 T1の地域とT2の地域の内容が異なった場合、T1の地域にT2の地域の内容を書き込む 処理2(処理1実行後) T1のフラグが9以外のレコードをT3に追加し、追加したレコードをT1から削除する 上記処理は追加クエリや更新クエリで実行出来る内容でしょうか? VBAの記述が必要な内容でしょうか?そこからして分かっていません。 具体的な処理方法という形で教えて頂けたらと思います。 どうか宜しくお願いします。

  • 入力できる文字数を制限する方法

    ACCESS2000でVBA を使用して、フォーム上の非連結テキスト ボックスに入力できる文字数を制限する方法を教えて下さい。(更新前処理のイベントでは、文字のチェックを行います。)

  • データ処理実行中に処理件数を表示させたい

    こんばんは、ACCESS初心者です。 ACCESSのVBAで、あるデータ処理を行うプログラムを作成しました。 処理件数が多いため、現在処理中の件数をフォーム上に表示させてあげようと、 テキストボックスを配置し、そこへカウンタの値をセットしようと思います。 (カウントアップしているサマをユーザーに見せたい) しかし、ただセットするだけではダメのようで、 再表示的なこと?をしてあげないと表示されない感じなのですが、 処理中にテキストボックスの最新の値を常に表示させるには 何か方法があるのでしょうか? よろしくお願いします。

専門家に質問してみよう