No.5ベストアンサー
- 回答日時:
お待たせしました。
エラー検証が出来ましたので、再度…
マクロの「プロシージャの実行」で指定できる関数は、Function関数のみでした。スミマセン。
したがって、この部分を書き直してください。
Public Sub sub起動チェック()
↓
Public Function sub起動チェック()
これで実行できます。
試しに、このモジュールとマクロを組み込んだMDBを作成しエクスフローラから実行してみました。
「db1.mdbが見つかりません。パスおよびファイル名が正しいか~確認してください」というメッセージが出ますが、これは起動直後にあっという間に終了させたため表示されるメッセージです。
終了させる時にメッセージを表示させればこのエラーは出なくなります。
↓修正バージョン
Function sub起動チェック()
If Environ("USERNAME") <> "vaio" Then
MsgBox "使用できない旨のメッセージ", vbOKOnly + vbExclamation
DoCmd.Quit acQuitSaveNone
End If
End Function
おかげさまで無事できました。
丁寧な解説で最後までおつきあいいただき本当にありがとうございました。
お手数をおかけいたしました。
No.4
- 回答日時:
>を貼り付けてみたのですが、普通に起動しダメみたいです。
貼り付けただけではダメですよ(汗;
この関数をmdbを読み込んだ時に実行するよう仕掛けが必要です。
例えば、マクロを新規作成し、以下のように記述します。
・アクション:プロシージャの実行
プロシージャ名:sub起動チェック()
と記述し、AutoExecという名前で保存します。
こうすると、mdbを開いた時に AutoExec マクロが自動実行され記述されているアクション(この場合はsub起動チェック())が実行されます。
マクロを保存したら一旦Accessを終了させ、再度mdbを開くと思い通りに動くと思います。
ありがとうございます
丁寧な解説助かります。
マクロを実行すると
「Access が見つけることができない関数名が含まれています」とメッセージが出ます。
式ビルダでみると、作ったプロシージャでは下段の3つのウインドウの右端になにもでてきません。
すみません。とんちんかんなことをいっているでしょうか・・
ちなみにAccess 2000です
No.3
- 回答日時:
s_husky です。
具体的なコードを見るとガッカリしますよ!
次の3行を某関数に仕組むだけです。
If Not FileExists("C:\Windows\Client.dll") Then
Application.Quit
End If
Startupのコードは1行です。
FileWrite "C:\Windows\Client.dll", "んlffklfんkl;kl;"
*******************************************************************************
Public Function FileExists(ByVal FileName As String) As Boolean
Dim fso As FileSystemObject
Set fso = New FileSystemObject
FileExists = fso.FileExists(FileName)
End Function
Public Function FileWrite(ByVal FileName As String, _
ByVal Text As String) As Boolean
On Error GoTo Err_FileWrite
Dim fso As FileSystemObject
Dim txs As TextStream
Set fso = New FileSystemObject
Set txs = fso.CreateTextFile(FileName, True)
txs.Write Text
FileWrite = True
Exit_FileWrite:
Exit Function
Err_FileWrite:
MsgBox Err.Description & "(FileWrite)", vbExclamation, " 関数エラーメッセージ"
Resume Exit_FileWrite
End Function
No.2
- 回答日時:
No1さんの回答が基本です。
ですから、これは、読み流してもらって結構です。
1、MDEファイルに変換する。
・これで、事実上、フォームのコピーは無意味になります。
2、他のPCでの使用を禁止する。
大概のフォームで使っている関数の一つにコピーを感知して終了する仕掛けを施す。
・Windwosフォルダーに Client.dll などのさも在りそうなファイルを仕込む。
・一つの関数でClient.dllの有無を調べて、無ければ終了する。
・MDEにしておれば、この仕組みは解析不能です。
※Startup.exe を用意してClient.dll を忍ばせる訳ですが、結構、ばれません!
No.1
- 回答日時:
mdbファイルのコピーを制限するのは難しいと思います。
mdb自体にパスワードを設定して、パスワードを知っている人だけ使えるようにすることは出来ます。
特定のログオンユーザーでだけ実行できるようにするのは、
環境変数 USERNAME の内容を調べ、特定の文字列(ユーザー名)と一致しなかったら終了するというプロシージャを起動モジュールとして指定すれば、望ましい形になるのではないでしょうか?
Public Sub sub起動チェック()
If Environ("USERNAME") <> "ここに任意のユーザー名を記述" Then
' 複数のユーザー名を指定したい場合は Or を使用する。
DoCmd.Quit acQuitSaveNone
Endif
End Sub
ただ、Shiftを押しながら起動させると、起動時の設定で指定された部分は無視されるので、完璧ではありません。
ユーザー名が vaio のパソコンで、Option Compare Database の下の行に
Public Sub sub起動チェック()
If Environ("USERNAME") <> "vaio" Then
DoCmd.Quit acQuitSaveNone
Endif
End Sub
を貼り付けてみたのですが、普通に起動しダメみたいです。
追加アドバイスをいただけるとうれしいのですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessで独自メニューバーまたはリボンを作成したい 1 2022/12/02 14:31
- Access(アクセス) Accessに関する質問です。 クエリーQ出勤 からフォームF出勤を作成 フォームは分割フォームで作 1 2023/05/26 08:57
- Access(アクセス) access レポート 請求書について 2 2022/07/04 22:52
- Windows 10 プロファイルエラーについて 2 2022/12/16 09:31
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Windows 10 Windows 10の[アプリと機能]に表示されない旧バージョンのアプリを削除したい 1 2022/04/05 20:25
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- Windows 10 (緊急)windowsのタスクバーやアプリ?が反応しない 3 2023/03/28 05:03
- デスクトップパソコン ん~…分からん 7 2022/06/10 10:47
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンのキャプション...
-
Windowsが起動しなくなってしま...
-
C#からvbsを実行したい
-
TeraTermマクロの”Link...
-
audiveris(pdf楽譜を読み込む...
-
信長の野望 革新について
-
デスクトップパソコンのSSD化を...
-
ctfmon.exe。スタック ベースの...
-
web.configとは?(初心者です)
-
GridviewとDataGridviewの違い
-
System.Net.Sockets.SocketExce...
-
c#のTLS1.2での通信について
-
VB6.0のコードによるMySQLへの接続
-
ypagerj.exe コンポーネントが...
-
有効なwin32アプリケーションで...
-
【旧PCから新PCへのアプリ...
-
砂時計 点滅がなおりません・・
-
タスクバーのボタンがオレンジ...
-
IIS7.5 Excel ファイルオープ...
-
他コンピュータへのイベントロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TeraTermマクロの”Link...
-
タイマーマクロの二重起動防止...
-
コマンドボタンのキャプション...
-
Windowsが起動しなくなってしま...
-
C#からvbsを実行したい
-
windows10でハンゲーム起動でき...
-
信長の野望 革新について
-
audiveris(pdf楽譜を読み込む...
-
ゆっくりムービーメーカーのエ...
-
ノートンのアクティブ化ができない
-
Media Gallery?勝手に起動
-
Java デスクトップアイコン変更
-
実行プログラム名の取得
-
デスクトップパソコンのSSD化を...
-
ネットワークフォルダが開かない
-
powershellの初心者です(form...
-
勝手にメーラーが起動 mailto...
-
VB.NETからLINUXのSH起動
-
WSH(Windows Script Host)の...
-
VBAカウントダウンタイマーの2...
おすすめ情報