VB2019 Access Programfiles 読み取り専用 解除 への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 ロト君  (社会人)
投稿日時
2021/12/18 01:16:33
成程。了解です!!
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2020/12/25 18:35:12
もし、Program Files に配置したいのであれば、
単に .accdb や .mdb に対して編集権限を与えるだけでは足りません。
それらを開く際には、同じフォルダーにロックファイル(.laccdb / .ldb) を
配置する必要があるためです。そのためには、該当フォルダーに対して
一般ユーザーに対する書き込み権限を与えねばならないという事を意味します。
しかし一般ユーザーが Program Files 上のファイルへ書き込むことは
セキュリティホールにもなりえるため、基本的に非推奨となっています。
どうしてもというのであれば、VirtualStore へのリダイレクトという手もあるのですが、
その場合、別ユーザーの編集結果を閲覧できないなどの弊害が起きるので、
今回の要件では使えるものではなさそうです。
https://laboradian.com/windows-virtualstore/
やはり、データファイルの置き場所を見直した方が良いでしょう。
単に .accdb や .mdb に対して編集権限を与えるだけでは足りません。
それらを開く際には、同じフォルダーにロックファイル(.laccdb / .ldb) を
配置する必要があるためです。そのためには、該当フォルダーに対して
一般ユーザーに対する書き込み権限を与えねばならないという事を意味します。
しかし一般ユーザーが Program Files 上のファイルへ書き込むことは
セキュリティホールにもなりえるため、基本的に非推奨となっています。
どうしてもというのであれば、VirtualStore へのリダイレクトという手もあるのですが、
その場合、別ユーザーの編集結果を閲覧できないなどの弊害が起きるので、
今回の要件では使えるものではなさそうです。
https://laboradian.com/windows-virtualstore/
やはり、データファイルの置き場所を見直した方が良いでしょう。
投稿者 (削除されました)  ()
投稿日時
2020/12/25 18:32:41
(削除されました)
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2020/12/25 17:16:27
アプリケーションのインストールには、二つの形態があります。
「インストールした本人しか使えないが、読み書き可能」な Per User Install と、
「誰でも使えるが、書き込みはインストール時のみで、実行時は読み取り専用」な Per Machine Install です。
前者は、C:\Users\ユーザー名\~ などの個人別フォルダーが使われ、
後者は、C:\Program Files\~ などが使われることが多いです。
そして Program Files への書き込みは、インストール時にのみ行われ、
その後は、管理者であったとしても読み取り専用でのアクセスとなります。
(アプリケーションを「管理者として実行」モードで起動すれば、書き込みも可能ですが)
Windows に誰でログオンしていたとしてもアクセスできるようにしつつ、
データの編集も行いたいのであれば、Soft.exe は Program Files のままで良いですが、
データベースファイルだけは、「誰でもアクセス可能なフォルダー」を用意して、
そこに配置する必要があるでしょう。
「インストールした本人しか使えないが、読み書き可能」な Per User Install と、
「誰でも使えるが、書き込みはインストール時のみで、実行時は読み取り専用」な Per Machine Install です。
前者は、C:\Users\ユーザー名\~ などの個人別フォルダーが使われ、
後者は、C:\Program Files\~ などが使われることが多いです。
そして Program Files への書き込みは、インストール時にのみ行われ、
その後は、管理者であったとしても読み取り専用でのアクセスとなります。
(アプリケーションを「管理者として実行」モードで起動すれば、書き込みも可能ですが)
Windows に誰でログオンしていたとしてもアクセスできるようにしつつ、
データの編集も行いたいのであれば、Soft.exe は Program Files のままで良いですが、
データベースファイルだけは、「誰でもアクセス可能なフォルダー」を用意して、
そこに配置する必要があるでしょう。
投稿者 ロト君  (社会人)
投稿日時
2020/12/25 15:35:07
今、VB2019を使って在庫管理ソフトを作ろうとしています。
Setup.exeで本体のデータSoft.exeとdata.accdbをProgramfiles内にインストールさせて、使ってみようと思いましたら。
data.accdbが読み取り専用で動くようで、Insertしようとすると、デバッグが起動します・・・。
どのようにしたら、読み取り専用ではなく動くのでしょうか??
環境====
Windows10
VisualSutadio2019 Visual Basic2019
Setup.exeで本体のデータSoft.exeとdata.accdbをProgramfiles内にインストールさせて、使ってみようと思いましたら。
data.accdbが読み取り専用で動くようで、Insertしようとすると、デバッグが起動します・・・。
どのようにしたら、読み取り専用ではなく動くのでしょうか??
環境====
Windows10
VisualSutadio2019 Visual Basic2019