みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

accessのテーブルのリンクのファイル名について

初めにaccessはかなり部分的な知識しかありませんのでド素人な質問になりますことを申し上げます。
accessでcsvデータを活用する際にテーブルのリンクを使用します。
それで話が済めば簡単なのですが元のcsvデータのファイル名が常に同じではないのです。
うまく説明できないのですが、仕事上でお客様からデータを頂き、各データのファイル名に共通部分があるのですが、上書きを防ぐために固有な部分もあります。csvの名前を変更するのも面倒です。その共通部分を生かしてスムーズにリンクを行う方法があればご教示下さい。

投稿日時 - 2009-01-20 12:24:56

QNo.4645425

すぐに回答ほしいです

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

1.モジュールを新作する
  (オブジェクトの中のモジュ-ル機能で)

2.そのモジュ-ル名をマクロで指定して実行
  (マクロを新作して そのマクロのなかに
  「プロシジァーの実行」を指定する モジュ-ル名も入れる)



新規モジュ-ルの命令 (内容)

Shell "cmd.exe /c copy C:\FL1\FILE1*.TXT C:\FL1\OUT1.TXT", vbHide

(1行で書く)

C: ドライブ名
FL1  フォルダ-名
FILE1 ファイル名の共通部分名(固定部)
*   あいまい検索機能 (場合によっては 固定部ファイル名検索前部につける)
.TXT 拡張子
OUT1.TXT  アウトプットファイル名

この命令により 固定部名の同一ファイルが 結合されて
1つのアウトプットファイルができる
テーブルリンク名は これを指定することになる
マクロ命令の 「テキスト変換」機能でも読み取り可能

投稿日時 - 2009-01-20 14:40:20

お礼

すみません。
マクロを新作して そのマクロのなかに「プロシジァーの実行」を指定する モジュ-ル名も入れる)
のところなのですが
オブジェクトのモジュールを選択してその後どういう操作をすればよいのかわかりません。やはり難しいのですね(-_-;)

投稿日時 - 2009-01-20 15:38:37

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

プログラムの動作を確認する方法ですが。
1.プログラム単体でのテスト (プログラムが適正に稼動するか)
  ・モジュ-ルをデザインで開き、実行 の SUB/実行フォーム
   をクリック
   これでアウトプットファイルが正しくできているかの確認する
   できていなければモジュ-ル内容の再確認

2.マクロで実行してテスト
  マクロ行を指定して 実行

---------------------------------------------------------
モジュ-ルが本当にマクロから呼ばれて稼動したかどうかを
確認するには

Shell "cmd.exe /c copy ****************
の下へ
MSGBOX     "END"
というような命令をモジュ-ルへ追加しておけばモジュ-ルが実行に
到っているかが判断できます
(メッセージボックスが画面に出てきます)


どうしても うまくいかない場合は
下記のホ-ムペ-ジで質問すれば
より 詳細で高度な回答が得られる可能性があります
(高度な知識を持った回答者が多数います)
http://www.moug.net/

投稿日時 - 2009-01-23 23:54:27

お礼

yatoaaさん、ありがとうございました。
動作は確認できました。
ファイルは今のところ反映されていませんが、ご紹介いただいたサイトでまた勉強したいと思います。
ありがとうございました。

投稿日時 - 2009-01-27 09:35:07

ANo.4

モジュ-ルを表示しての実行なら
(プログラムの単体テストのような感じ)
(念のためにマウスのポインターはモジュ-ルのどこかへセット
 **** Iのような表示状況)
実行

「SUB/ユーザーフォームの実行」をダブルクリック です

(PF5キーを押してもたぶん稼動しません)

それでも エラーメッセージが出たり
全然実行された様子がなければ
「参照設定」のチェックマークを確認(VBA関連が有効になるように
チェックマークされていないかの確認のため)
//////////////////////////////////////////////
うまく モジュ-ルが 稼動すれば
マクロを作り そこから 実行
オブジェクトウインドを「マクロ」にして
当該のマクロ行を選択して 「実行」

///////////////////////////////////////////////
うまく マクロが動けば
フォームをつくり ツールボックスから 「ボタン」を作る
「ボタン」により マクロを稼動する
仕組みにすれば 運営が便利

投稿日時 - 2009-01-21 14:20:45

お礼

yatoaaさま何度もありがとうございます。
現在の状況なのですが実行してもマクロが反映されているかどうか確認できません。
私のイメージはマクロを実行すればOUT1.csvに見たいデータが反映されるのだと思っているのですができていません。
マクロの設定ですが。アクションでプロシージャの実行を選択して、プロシージャ名のところにモジュールで作成した際の名前を記載すればいいんですよね?
あと何か足りないのかと思うのですが。参照設定もVBA関連にはチェックしました。
全然構造を理解せずにトライしたのが無謀だったのかもしれないのですが(^_^;)

投稿日時 - 2009-01-22 10:18:28

ANo.3

・間に入れる内容は
Shell "cmd.exe /c copy C:\Documents and Settings\ユーザー名\デスクトップ\フォルダ名\*共通部分名.csv C:\Documents and Settings\ユーザー名\デスクトップ\フォルダ名\OUT1.csv", vbHide
でいいでしょうか?
共通部分は名前の後ろが一致するので*は前にしました。

それで いいと思います


・OUT1.csvは*共通部分名.csv と同じフォルダに入っていていいのでしょうか?

問題ありません

//////////////////////////////////////
モジュ-ルのテスト実施するなら
モジュ-ルをデザインで開いたままで 「実行」
を押せば モジュ-ルが実施されます
(ふだん使用する場合は マクロ命令で指定しての実施ですが)

もしも実行エラーになったら 「参照設定」で
vba関連の指定にチェックマークが入っていないかもしれませんので
確認する必要があるかもしれません

///////////////////////////////////////
話はそれますが(よけいなお世話かもしれませんが)
データー保存フォルダ-は
C:\Documents and Settings\ユーザー名\デスクトップ
を使用すると なにかと面倒ですので
c:の直下へフォルダ-を新規作成して
そこを使用するほうが便利だと思います

投稿日時 - 2009-01-21 11:19:50

お礼

ありがとうございます。
何度もすみません。
モジュールのテストなのですが、F5を押すとマクロが出てくるのですが何もないのでキャンセルボタンのみ有効になっています。オブジェクトのマクロでは作成されているのですが。
何か設定の仕方がおかしかったのでしょうか?
保存場所はご指摘のようにしたいと思います。

投稿日時 - 2009-01-21 11:55:37

ANo.2

モジュ-ル

新規作成

挿入

プロシージャ

ボックスが出てくる

名前(モジュ-ル名)を入れる 例えば bbb11

種類 → public function を指定

Public Function bbb11()

End Function

と出てくるので
この間に
Shell "cmd.exe /c copy C:\FL1\FILE1*.TXT C:\FL1\OUT1.TXT", vbHide

を入れて
Public Function bbb11()
Shell "cmd.exe /c copy C:\FL1\FILE1*.TXT C:\FL1\OUT1.TXT", vbHide
End Function

となって モジュ-ル完成です

次はこのプログラムを実行させるために
マクロをつくります

マクロ を 新規作成
内容は

プロシージャの実行 を指定
下の欄に  名前を書く
bbb11()  と書く

このマクロを実行させればいいです
マクロ実行は マクロ名をダブルクリックしてもできます
普通はフォームを作成して そこへ「ボタン」を作成して
それをクリックすることで実行します

投稿日時 - 2009-01-20 20:07:36

お礼

ありがとうございます。
上記に従ってやってみましたが何点かご質問をさせて下さい。
・間に入れる内容は
Shell "cmd.exe /c copy C:\Documents and Settings\ユーザー名\デスクトップ\フォルダ名\*共通部分名.csv C:\Documents and Settings\ユーザー名\デスクトップ\フォルダ名\OUT1.csv", vbHide
でいいでしょうか?
共通部分は名前の後ろが一致するので*は前にしました。
・OUT1.csvは*共通部分名.csv と同じフォルダに入っていていいのでしょうか?
以上よろしくお願いします。

投稿日時 - 2009-01-21 10:06:58

あなたにオススメの質問