今だけ人気マンガ100円レンタル特集♪

ACCESSでセキュリティ警告が出る事象について、アドバイスをお願いします。

やりたいことは、以下4点です。
(1)CSVファイル「C:\temp\File1.csv」をテーブル「T_File」としてインポートする。
(2)クエリ「データ確認」を表示する
(3)表示したクエリ「データ確認」をエクスポートする。
(4)エクスポートしたメッセージを表示する
※週ごとに実行したいので、最初にテーブル「T_File」を削除します。

フォームに設置したコマンドボタンを押すことで実行させたいと思っています。
理由は、インポートするCSVファイルがデータ項目の並びなど複数のパターンがあるためで、インポート定義を複数作成して、コマンドボタンを複数設置するつもりです。

以下が、1つのコードです。

-------ここから--------

Private Sub コマンド0_Click()
On Error GoTo Err_コマンド0_Click

DoCmd.OpenQuery "Q_Del", acViewNormal, acEdit
DoCmd.TransferText acImportDelim, "File1定義", "T_File", "C:\temp\File1.csv", False, ""
DoCmd.OpenQuery "データ確認", acViewNormal, acEdit
DoCmd.OutputTo acQuery, "データ確認", "MicrosoftExcelBiff8(*.xls)", "C:\temp\データ確認.xls", False, "", 0
MsgBox "データを 『 C:\temp 』 に出力しました。", vbInformation, "データ出力終了"

Exit_コマンド0_Click:
Exit Sub

Err_コマンド0_Click:
MsgBox Err.Description
Resume Exit_コマンド0_Click

End Sub

-------ここまで--------

なんとか思ったように動いているのですが、超初心者が見よう見まねで作成したためか、ACCESSを起動しようとしたり、最適化すると下記のようなメッセージが表示されます。

-------ここから--------
セキュリティ警告
このファイルに、意図的にお使いのコンピュータに損害を与えるコードが含まれる場合、ファイルは安全でない可能性があります。
-------ここまで--------

ここで、質問です。
私が書いたコードは、いろいろ調べてコピーして張り付けたものなので、何か書き方が違っていたり、足りないコードがあるのでしょうか?

もしくは、下記URLにあるようにセキュリティレベルを変更するかデジタル署名を使用することで回避できるのでしょうか?
http://support.microsoft.com/kb/884310/ja


このACCESSを他の事務所の方に展開して利用してもらおうと考えているため、セキュリティ警告が出ないようにしたいと思っています。
(みんなに嫌がられるので・・・)


超初心者のため、どのように伺えばいいのか難しく、表現がおかしかったり言葉足らずのことがあればご指摘ください。
良いアドバイスをお願いいたします!

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

A 回答 (1件)

2003からセキュリティが厳しくなって、マクロ付きのXLSファイルを開いたときのように


Accessでも確認メッセージが出るようになりました。
(私は2002 & 2010 しか持っていません)

VBAの記述方法によって出なくなる・・ということはありません。

載せられたリンク先はランタイム版の説明ですが、
他の方のPCにもAccessは入っているのですよね?

デジタル証明書については、私自身よく分かりませんが
下記リンク先の Wendy02 さんの回答が参考になるかと思います。
http://oshiete.goo.ne.jp/qa/2821283.html
かいつまんで言えば、
費用が発生する事と個人では取得が困難な点がネックになります。
セキュリティレベルを下げてもらうのが現実的な選択だと思います。

なお、蛇足ですが、Access 2007 SP2からは、MicrosoftExcelBiff8 オプションが消えてしまったようです。
Docmd.transferSpreadsheet メソッドを使われた方が良いかも知れません。
両者の結果を見て考えてみてください。
http://answers.microsoft.com/en-us/office/forum/ …
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございます。
ソースの問題ではなく、MS-Officeのセキュリティの問題なのですね。
突き詰めると費用が発生するのであれば、nicotinismさんのおっしゃるとおり、私も「セキュリティレベルを下げてもらうのが現実的な選択」だと思いました。

現在、私はACCESS2003を利用しているのですが、他のメンバーはまだ2000を利用している方や、2010はいないと思いますが2007を利用している方もいるので「MicrosoftExcelBiff8 オプションが消えてしまった」という情報はとてもたすかります!

参照のURLが英文だったため、いまいち私の能力では理解しきれなかったのですが「Docmd.transferSpreadsheet」を検索してソースを修正したいと思います。

的確なアドバイスをしていただき、ありがとうございました!
自力でできるところまでがんばりたいと思います。

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

お礼日時:2012/08/16 22:05

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

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

Q自分のマクロを「安全」なマクロと認定するには?

作ったマクロを動かす為に、いまExcelのセキュリテーレベルを「低(推奨しません)」にしています。

不安全なので「最高」か「高」にしたいのですが、メニューバーのツール>マクロ>セキュリテーの「信頼できる場所」とか「信頼できる作成元からの署名」とはどうすれば良いのでしょうか?

Officeのヘルプを読んでみたのですが、”信頼できる”はMS社の認可が必要なような(??)、意味が良く理解出来ません。

                    MS Office2003pro

Aベストアンサー

t-takeuch様、onlyrom様
こんばんは。Wendy02です。

もう少し、書かせていただきます。

>マクロとセキュリティーのお話ですが、私の場合、「低」にしていたからマクロウィルスにやられたという事はないです。

このセキュリティ設定は、外部から変更できます。ですから、Excelを起動する前に、感染することはありえます。

通常、「高」の設定をしていても、

C:\Program Files\Microsoft Office\
C:\Documents and Settings\<ログイン ユーザ名>\Application Data\Microsoft\Excel\StartUp\

側からは、素通りするように作られています。それを防ぐためには、「最高」にするか、

[信頼できる発行元]の組み込み済みのアドインとテンプレートをすべて信頼する
をオフにしなければなりません。

だから、マクロカッターのような製品を使うか、アンチウィルスで、通してあげるしかないと思います。こうしたユーティリティソフトが使えないような、強力なプロテクトをしてあるブックは、なるべく使うのは止めたほうがよいです。Excelへのパスワード・クラッカーを出している会社が、反対の逆に強力なプロテクトを出しているようです。

>OfficeもVBAから「VSTA」に変わっていく様ですし、私のはそんな手間とお金を出す程の価値は全くないです。

私としては、直接、VSTAを視野に入れているわけではないのですが、プログラミングの基礎的なことからやり直しています。どうやら、今のペースですと2年くらいは掛かりそうです。それで、食べられるとは思ってはいませんが、何かのプラスにはなると思います。ただ、10年先・20年先のMS帝国なんていうのは、想像はしたくありません。それは、コンピュータによる支配だからであって、『ターミネータ』の未来世界のようなものになりかねません。

それで、VSTAを本格的に使うのは、次世代になってしまうことも予想もしています。MSとしても、むごいことをことをするなって思います。でも、それが、MSの歴史ですからね。私は、1度は経験してきているわけです。

要するにコンセプトとしては、一旦ユーザーに与えた、VB5/6準拠の言語を、再び取り上げようとしているのではないでしょうか?そのためのセキュリティ設定ではないか、と勘ぐっています。

一部の強い意見で、VBAを全面否定している人たちがいることは事実でしょうね。正確にいうと、アマチュアの作るプログラングなど、危なくて使えない、ということでしょう。逆に、MSは、そういう人たちに対する妥協案が、現在のような設定になっているのだと思います。

t-takeuch様、onlyrom様
こんばんは。Wendy02です。

もう少し、書かせていただきます。

>マクロとセキュリティーのお話ですが、私の場合、「低」にしていたからマクロウィルスにやられたという事はないです。

このセキュリティ設定は、外部から変更できます。ですから、Excelを起動する前に、感染することはありえます。

通常、「高」の設定をしていても、

C:\Program Files\Microsoft Office\
C:\Documents and Settings\<ログイン ユーザ名>\Application Data\Microsoft\Excel\StartUp\

側...続きを読む

QAccess2010 セキュリティの警告

ACCESS2010でデータベースを開くと、セキュリティの警告として

セキュリティの警告 一部のアクティブコンテンツが無効にされました。
クリックすると詳細が表示されます。 [コンテンツの有効化]

が黄色で表示されてしまいます。[コンテンツの有効化]をクリックしています。
ちなみに、このデータベースは自分で最初から作成したものです。

このメッセージが出ないようにするにはどのようにすればいいでしょうか。

Aベストアンサー

発行元(自分で作成)をセキュリティセンターにある信頼できる発行元リストに追加

発行元からの「ファイル」「開く」Microsoft Office Backstage ビューが表示「セキュリティの警告」領域「コンテンツの有効化」下矢印クリック「詳細オプション」「Microsoft Office セキュリティオプション」 「この発行者のドキュメントをすべて信頼する」クリック「OK」
参考URL

参考URL:http://office.microsoft.com/ja-jp/excel-help/HA010354309.aspx#BM2

Qセキュリティの警告が表示される理由

アクセスファイルを開くと毎回毎回セキュリティの警告が表示されてしまうのですが
これは人からもらったファイルだからでしょうか?

自分では作ってません。
アクセス2010です。

Aベストアンサー

Access2007からはExcelと同様にマクロ・VBAなどが含まれていて
あなた以外が作成したものだと
安全のために確認メッセージが出るようになりました。
添付画像の『コンテンツの有効化』をクリックすれば
次回からは出なくなります。
※そのファイルが「安全」かどうかは貴方の判断にゆだねられます。
こちらを読んでもらえばよく分かります。

信頼済みドキュメント
http://office.microsoft.com/ja-jp/access-help/HA010354384.aspx

QAccessの画面更新を一時的に停止する方法。

こんにちは。
Accessの画面更新を一時的に停止する方法を捜しています。
ExcelのScreenUpdatingと同様な機能です。

VBAでの更新処理時に画面がチラチラと動くのを防止したいと思っています。
(Ver:Access2000)
ご存知の方宜しくお願い致します。

Aベストアンサー

Application.Echo False '画面の描画を止める

・・・処理を実行する・・・

Application.Echo True '画面の描画を行う

QAccessでテーブル名やクエリ名一覧の抜き出し

Accessでテーブルやクエリを沢山(100個以上?)使っております。

そこで、テーブル名やクエリ名の管理をしたいので、テーブル名(クエリ名)の一覧を抜き出したいのですが、どうすればいいのでしょうか?
または、そういうことは無理なのでしょうか??(;O;)

1個づつコピーペーストでテールブル名をエクセルに貼り付けて行こうかな?と思ったのですが、さすがに数が多すぎるので困っております。

できるだけ簡単な方法がいいのですが、もしなければVBAでもいいです。

おわかりの方がいらっしゃいましたら、よろしくお願いします。

Aベストアンサー

・クエリを新規作成
・以下SQLを貼り付け
SELECT MSysObjects.Type, MSysObjects.Name, MSysObjects.Flags
FROM MSysObjects
ORDER BY MSysObjects.Type, MSysObjects.Name;
・デザインビューで表示
あとは、TypeとFlagsの条件を変えてあげれば一覧できます。

QAccessのマクロでモジュールを実行させたい。

Access2002を勉強中の初心者です。

AccessでDB1という名前のデータベースを作成し、その中で、モジュール1というモジュールを作成しました。これを実行するマクロを作成したく、次のようにマクロを作成しました。
マクロのデザイン画面でアクションに「プロージャの実行」を選択、プロージャ名入力覧の右側の...のボタンを押して式ビルダ画面を表示、ここの「関数」フォルダを開いてDB1を選択、表示されたモジュール1を貼り付けてOK。
しかし、このマクロを実行すると、次のエラーとなります。「DB1 指定されたDB1が見つけることができない関数名が含まれています」

根本的に方法が間違っているのでしょうか?
アドバイスをよろしくお願いします。

Aベストアンサー

#1です。

ちょっと時間ができたので、Accessのヘルプで、
 "RunCode/プロシージャの実行" アクション
についてのトピックを見てみました。

結論から言うと、基本的な考え方が間違っているみたいです^^;。

「プロシージャの実行」アクションでは、「Function」プロシージャを指定するようです。
Subプロシージャではエラーになります。


つまりご質問の件では、
「Subプロシージャを呼び出すFnctionプロシージャ」をまず書かなけれえばならない。
そして、マクロのアクションでは、あらためてこのFunctionプロシージャを指定しなければいけません。

QACCESSに同時アクセス(編集)をしたい

教えてください。
ACCESSのDBに複数のユーザが同時にアクセスして、
データを追加・編集したいのですが、
やはり、不可能でしょうか?

Aベストアンサー

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」

というのがありますから、最初に作ったdb1をたどり、リンクしたいテーブルを
選択します。

こうすることにより、db2にdb1のテーブルがリンクされ(リンクテーブルと
呼ばれます。アイコンが通常のテーブルと違います。)、db1に格納された
データをdb2で編集することができます。

db2で、db1からのリンクテーブルを元にクエリーを作成することもできます。
リンクテーブルに対してできないことはテーブル構造の変更くらいで
他のことはだいたいできると思っていいかと思います。

このような形をとれば、ローカルエリアネットワーク内の複数のコンピュータ
から同時に同じアクセスデータベースにアクセスすることは可能かと思います。

このやり方にはおそらく問題もあるだろうと思うのですが、昔私がやって
いた頃は、特段支障もなく業務を行なうことができました。問題は、これを
読んだ他の誰かが指摘してくださるかと思います。

同じレコードに複数ユーザが同じタイミングでアクセスするとややこしい
ことになります。これを回避するためには、db2にワークテーブルを備えておき、
リンクテーブルからレコードを一度db2に格納し、編集を終了したのちに
リンクテーブルのレコードを削除し、ワークテーブルで編集したレコードを
リンクテーブルに追加する、などのルーティンをマクロやVBAで構築するのが
よいかと思います。私はそのようにしていました。

他に、ADOを使う方法などもあります。方法はいくつかありますから、
少し研究してみるといいですよ。(^-^)

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」
...続きを読む

Q【Access】クエリで抽出したデータをCSV形式でエクスポートできますか?

タイトルの通りなのですが、
クエリーで抽出したデータをcsv形式でエクスポートするには
どのようにすればいいのでしょうか?
Accessに慣れていなくて困っています、どなたか教えてください(>_<)

その後はいろいろ加工したいので、
最終的にはExcel形式で保存しなおそうと思っています。
初めからExcel形式でエクスポートすると、とても重くなるし、
いちいち「再計算」がかかってしまうので作業がやりづらいんです。。。

どなたかお力を貸してください。
よろしくお願いします!

Aベストアンサー

クエリをクリックし選択状態にしてメニューのファイルのエクスポートもしくはクエリを右クリックしエクスポートを選択すると保存する場所の選択するダイアログが出ますのでファイルの種類をテキストファイルを指定し保存するホルダとファイル名を指定します。
指定するとテキストエクスポートのウィザードが表示されますので順次進めていきエクスポート先のファイル名でパスとファイル名が表示されますのでcsvで保存するなら最後の.txtを.csvに変更しOKをクリックすればcsvで保存でします。

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

QACCESSで作成したアプリケーションがACCESSランタイムで動かない?

ACCESSで作成したアプリケーションがあるのですが、顧客の要望でランタイムで運用したいと思っています。

ところが動作確認をすると、あるフォームを開く際に「実行時エラーが発生したため、このアプリケーションの実行は中断しました。
アプリケーションを続行できません。システムはシャットダウンされます。」

というダイアログを表示して、OKボタンを押すとアプリケーションが落ちてしまいます。

ランタイムではないACCESSでは問題なく動作するのですが、ランタイムでは何が違うのかわかりません。

動作環境
OS:WindowsXP
ACCESSランタイムは2003と2000 SR-1、ランタイムでないACCESSでも2003と2000 SR-1を試していますが、いずれの場合でもランタイムで上記の症状が発生し、ランタイムでない場合は発生しません。
Microsoft Jetは4.0にしてあります。

断片的なヒントでも結構です。また参考になるサイトでも結構ですのでご教示をお願いいたします。

Aベストアンサー

Accessの内部エラーが発生しているのですぐ落ちてしまう。
ランタイム条件によってフォームが実行される時に有効なコードが誤っているとか。(フォーム中のコードが削除したテーブルを開こうとしている。実行時のコードで誤ったロジックが含まれる。みたいな誤り)
エラーがコード内で発生しているがエラー処理を実装していないので落ちてしまうとか。


人気Q&Aランキング