アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

現在Accessにてツールを作成しておりますが、読み取り専用で
開かれた場合は、処理をさせないようにしたいとところです。

処理が実行されると削除クエリの箇所で、削除できない旨のエラーが
出てしまい処理が中断します。
なお、中断される前にローカルにテンポラリテーブルを作成したり
している為、中途半端な状態で止まってしまいます。
※ツールはRuntime環境で利用する為、ユーザーが中途半端に
 作成されたテーブル等を削除できません。

なので、フォームを開く際に読み取り専用で開かれたかどうか
チェックし、読み取り専用の場合は、処理させないようにボタンを
使用不可にしたいと考えております。

ご教示の程、宜しくお願い致します。

A 回答 (5件)

>CurrentDb.Updatable って何をしようとして...


よく知らないですけど、、、

アクセスの環境変数みたいなものとして持っているものを返しているんじゃないかな?
ざっくばらんに言うと、どういう形でDBを開いたかをどこかで覚えておくためのものだと思います。
(ldb内に格納されているんじゃないかな)。

多分、参照だけなので、他には何の影響もないと思いますが、まあ、納品物なら
動作検証等はやっておいたほうがよいのかもしれませんね。
    • good
    • 0
この回答へのお礼

度々のご回答ありがとうざいます。
了解です。

とりあえず、影響無いことを検証したいと思います。

助かりました!

お礼日時:2014/11/05 20:04

updatable かな?

この回答への補足

要するにCurrentDb.Updatable ってやることにより
変更権限有りで開いたときに何か影響がないかを懸念
している次第です。

補足日時:2014/11/05 17:01
    • good
    • 0
この回答へのお礼

あ・・うまくいきました。すみません。
そもそも、CurrentDb.Updatable って何をしようとして
Falseを返したりTrueを返したりしてるのでしょうか。

勉強不足で大変恐縮です。。

お礼日時:2014/11/05 16:55

今ちょっとやってみたら、、、


MsgBox CurrentDb.Updatable

で判断できたよ。
Acc2000 でMDBファイルだったけど。
    • good
    • 0
この回答へのお礼

こちら2010ですが、読み取り専用だったらFalse、変更可能だったら
Trueになりました!ありがとうございます。

ちなみにですが・・・

If CurrentDb.Update = False Then
MsgBox "読み取り専用"
Else
MsgBox "読み取り専用ではない"
End If

としたら、「コンパイルエラー メソッドまたはデータメンバーが
見つかりません」となり.Updateの箇所でひっかがってるようです。
どのように評価すればよいでしょうか。

度々申し訳ございません。

お礼日時:2014/11/05 16:49

>読取専用で開いた場合、


> Set d1 の箇所でFalse
> Set d2 の箇所でデータの表示と書込みを行う権限が無い旨のエラー

ってことは、きっと自分自身に対するチェックには利用できないってことですね。

あとは他のMDBから判断できるのかをチェックしてみるとか、
エラーハンドリングでそれを伝えるか、、、
    • good
    • 0

この辺りが参考になるかな? 詳しく読んでもいないので、自分自身に対してできるかよくわかんないけど。



Dim d1 As database, d2 As database
Set d1 = OpenDatabase("biblio.mdb", 0, -1) 'set read-only option True
debug.print d1.Updatable ' Updatable prints False, 0, as expected.
Set d2 = OpenDatabase("biblio.mdb", 0, 0) 'set read-only option False
debug.print d2.Updatable ' Updatable still prints False, 0

定義では、更新可能なプロパティは、読み取り専用アクセスが True、およびその逆の場合に False を返します。

まあ、最悪の場合、チェック専用にテーブル作ってエラー処理したルーチンから、そのテーブル書きに行ってみればわかると思うけど。

参考URL:http://support.microsoft.com/kb/107074/ja

この回答への補足

失礼しました。
普通に開いた場合(変更権限有り)、
 Set d1 の箇所でTrue
 Set d2 の箇所でTrue
となりました。
ということは、d1でFalseだったら読み取り専用で開かれたと
判断しても大丈夫なのでしょうか。

補足日時:2014/11/05 16:28
    • good
    • 1
この回答へのお礼

ShowMeHow様
ご回答ありがとうございます。
早速試してみたのですが。。

読取専用で開いた場合、
 Set d1 の箇所でFalse
 Set d2 の箇所でデータの表示と書込みを行う権限が無い旨のエラー

普通に開いた場合(変更権限有り)、
 Set d1 の箇所でFalse
 Set d2 の箇所でTrue
となりました。

結局なにをどう評価して「今読み取り専用で開かれてる」となるのでしょうか。
権限が無いエラーを拾う感じなのでしょうか。
いまいち理解できずにおります。

お礼日時:2014/11/05 15:54

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す