• ベストアンサー

[Access] テキストファイルをテーブルにリンク

テキストファイルをテーブルにリンクし、各レコードの余分なスペースをクエリを使わずテーブルの定型支援等で削除する事はできますでしょうか? テキストファイル側を直せばいいというのは解っているのですが、、、ファイルの数が100を超えるので、アクセス側でできると助かります。 各レコードは↓のようにデータの前後にスペースが入っています。 <ここにスペース>abdcd12345<ここにスペース> 何か方法はありますでしょうか。 わかる方、教えてください!

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

  • ベストアンサー
noname#223623
noname#223623
回答No.3

補足ありがとうございます。項目がいくつかあると思ったのですが1個しかないんですか? 疑ってもしょうがないので以下それを信じて書きます。 このデータをリンクするとき、「テキスト リンク ウイザード」の最初の画面で「固定長」が選ばれてませんか。だとしたら、「区切り記号付き」を選んでください。[次へ]を押すと「フィールド区切り記号」という項目がありますので「スペース」以外の文字を選びます。普通はカンマかタブでいいと思います。画面の下半分にテーブルのサンプル(こういう言い方でわかるかな)がありますね。ここで1列になってたらOKです。"member list"というのはおそらく項目名だと思うので「先頭行をフィールド名として使う」をチェックしましょう。 あとは適当にどうぞ。テーブルを開いてスペースがなくなってたら大成功。 気になるのはフィールド名にスペースが入っていることです。大丈夫だとは思いますが、他のプログラムと連携するとかややこしいことをするとエラーの原因になるかもしれません。ここだけは変えといたほうがいいかも。 [補足] スペースがなくなる、とは書きましたが、これはテーブル上で表示されないという事です。元のテキストファイルにはしっかり残ってますからお間違えなく。 [補足2] ここまで書いて、「そういえばレコードの更新ってできるんだっけ?」と思って試したら案の定できません。ようするに読取専用になるわけですが、それでOK? 書き込むならリンクではなくてインポートにする。その他の方法は、うーん、わからない。

yukikok
質問者

お礼

「区切り記号付き」で出来ました!!!そうなんです、データは1つなんです。でもこのデータをメインに他のデータベースとリンクする必要があり、スペースがあった為にリンクできまなかったんです。テキストファイルにスペースが残るのも、アクセスからは読取専用になるのも問題ありません。いろいろありがとうございました!!!!!

その他の回答 (2)

noname#223623
noname#223623
回答No.2

結論として、テーブルの設定で解決する方法はないと思います(私が知らないだけかもしれないので、その時はお赦しください)。 理由を書きます。通常はテーブルの中を直接には覗きません(開発中やメンテナンス中は別として)。大抵はフォームやレポートで見ることになるので、スペースが入っていたら、例えばフォームのテキストボックスでスペースを取り除いてやります。ただし、これは表示上のことでテーブルを見るとスペースは残っています。途中で計算(文字の連結など)が入る場合はクエリでやることもあります。 ご質問では「スペースを削除する」と書かれていますが、「スペースを表示しない」ということではだめなんでしょうか。それならば今言ったように可能です。実際にスペースを削除するとなると、テキストファイルを直す必要があるのかなと思います。ただ、現在までの情報ではちょっと足りないです。とりあえず、テキストファイルのもう少し詳細なサンプルを補足してください。行数は5行くらいでいいです。 ファイルを修正するのは大変だと思われるかもしれませんが、#1さんのおっしゃるように、ある程度のことは一括処理できます。場合によっては、リンク時の操作で解決できるかもしれませんのでご協力お願いします。 ※最終的にはVBAで大抵のことはできるんですが...。それにしてもファイルの状態がわからないとできないので、補足を。

yukikok
質問者

補足

ありがとうございます。 データは member list が1行目で以下2~6行と続きます。 削除したいスペースは2-6行のデータの前後のスペースになります。 member list aa12345 bb45678 cc91234 dd56789 ee12345 やはりおっしゃる通り使用用途と使用目的が違うのでテーブルでは無理そうですかね。。

回答No.1

こんにちは スペースを単純に削除するということなら,私ならテキストエディタを使います. 私は高機能テキストエディタのDana (RimAtrs)を使っていますが,100ファイルを同時に開けて,なおかつ開いているファイルに対して一気に文字検索・置換をかけられます. おそらく秀丸エディタなど他の高機能エディタでも同じことができるのではないかと思います. 100を超えるテキストファイルをリンクするだけでも大変です. ファイルの中身が複雑だとここまで単純にはいかないと思いますが…

参考URL:
http://www.rimarts.co.jp/index-j.html
yukikok
質問者

お礼

ありがとうございます。今回はできるだけ手動でのステップを減らしたかった為の質問でした。でも「他のエディタを使う」というチョイスを知ることもできとても助かります。ありがとうございました。

関連するQ&A

  • accessのリンクテーブル

    AというDBのAAテーブルをBというDBのBBテーブルとしてリンクしています。 B側では単にリストで見る程度でレコードを更新、追加、削除はしません。 クエリで絞り込んで集計程度はします。 このような使い方において、B側のDBを開いたままで A側で更新や追加等を行うと排他制御とかでひっかかったりしますか? よろしくお願いします。

  • Access のリンクテーブルについて

    よろしくお願い致します。 Access側から外部テーブルを参照したリンクテーブルを作成しました。 しかしそのテーブルを開くのにはすごく時間がかかり、時にAccessが応答なしの状態になったりします。 そこで、ためしにテーブル作成クエリでリンクテーブルのデータと同じデータをもつテーブルを作成しました。 すると、そのクエリで作成したテーブルからの操作はスムーズに行われました。リンクテーブルとはデータ量も同じなのにこのように重さの違いがでるのはなぜなのでしょうか? Accessを使いはじめたばかりで、裏ではどのようになっているのかよくわからずパフォーマンスのあげ方に四苦八苦しております。 アドバイスをよろしくお願いします。

  • Accessでテーブルのリンクを新規テーブルに保存

    ExcelのデータをAccessのテーブルでリンクしています。 そのデータをクエリで必要なレコードだけを抽出します。 抽出したデータのみを新規テーブルとして保存したいんですが、保存の仕方がわかりません。 Access2000です。 どうかよろしくお願いします。

  • Accessで多くのExcelファイルをリンクしてテーブルを作ろうとするととエラーが出ます

    Access2007で、複数のExcelファイルをリンクテーブルとして参照し、 UNIONで結合して1つのテーブルにまとめ、様々な処理をしています。 リンクするExcelファイルの数がだんだん増えてきて、 50個になったところでエラーが出るようになりました。 ユニオンクエリは正常に開くことができるのですが、 テーブル作成クエリで「クエリが複雑すぎます」と表示され、 テーブルが作成できません。 ユニオンクエリでは全てのリンクテーブルをUNIONで繋いでいます。 テーブル作成クエリはユニオンクエリをSELECT...INTOでテーブルにしているだけです。 参照するExcelファイルは今後も増えていって最終的には120個くらいまで 増やるかもしれないということで、 どうしていいかわからず困っています。 何かいい方法をご存知の方、教えていただけないでしょうか。

  • [Access] 余分な空白(スペース)の削除

    テキストファイルをAccessにリンクしたなのですが、余分な空白(スペース)があります。 クエリを使ってこの余分な空白(スペース)を削除できるような関数はありませんでしょうか。 宜しくお願いしますm(_ _)m

  • Accessでのリンクテーブルについて

    Access2007でSQLServer2005のテーブルのリンクを張っています。 このリンクテーブル内のnvarchar型のフィールドをクエリでint型へ変換したいのですが、CInt(対象フィールド)としてもオーバーフローが発生していまいます。 nvarchar型のフィールドの内容は8桁の数字で、SQLServer側では変換できています。 Accessではnvarchar型の変換はできないのでしょうか? 変換したビューを引っ張ることも考えましたが、そのクエリ以外では文字列として扱いたいので、できればクエリ内で変換したいのですが・・・。 どなたか解決方法をご存じでしたら教えてください。 お願いします。

  • OracleDBのテーブルのリンクについて

    Oracleテーブルのリンクについて教えてください。 OracleDBのテーブルをACCESS97からリンクして見ているのですが、 OracleテーブルのレコードをACCESSから削除や挿入しようとすると 出来るテーブルと出来ないテーブルがあります。 ACCESSからレコードを選択し、右クリックを押すと通常、そのメニューの 中に「新しいレコード」、「レコードの削除」などが出ますが、 レコードが削除できないテーブルはその項目が灰色になり選択できません。 更新出来ないテーブルと出来るテーブルの違いは何が考えられますか? 申し訳ないですが、宜しくお願い致します。

  • ACCESS97で、テーブルリンクを使用すると結果がおかしくなります

    こんにちわ、ご教授よろしくお願いします。 win2000 Office97を使用しています。 ACCESS97でテーブルリンクでデータを抽出して、 クエリーを走らせた場合と、 リンクを一度テーブルに落としてから、 クエリーを走らせた場合とでデータ件数がちがってきてしまいます。 正しい結果は一度テーブルに落としてから、クエリーを走らせた場合が正しい結果が出ました。 97でテーブルリンクを使用する際に なにか注意しなければならないことがあるのでしょうか? 一々、テーブルに落としてからクエリーを走らすにはかなりの数があるので、 できれば、テーブルリンクを使用してクエリーを走らせたいのです。 わかりずらい説明ですが、ぜひとも ご教授お願いします!><

  • アクセスが重い!!

    アクセス超初心者です。 フィールド数12、レコード数100程度のファイルがあります。非常に少ないレコード数なのですが、ファイルの重さは200MBです。 一体何が原因か分からなかったので、テーブル、クエリなど、中にあったものすべてを削除してみたのですが、ほぼ全くファイルのサイズが変わりません。 他の似たようなファイルでは、レコード数が1000以上あっても2MB程度の重さです。 意味のよく分からない質問だとは思いますが、よろしくお願いいたします。 アクセス2002です

  • アクセスのテキスト型フィールドの初期値

    アクセスのテーブルにテキスト型フィールド「●●日付」を作成しました。さらに、定型入力の方法として、日付(____/__/__)を指定しています。 このテーブルから、クエリでデータを取得する際、●●日付にデータを入力していないレコードのみを取得したいと思い、クエリの抽出条件として=""(ダブルクォーテーション)や=''(シングルクォーテーション)と記載したのですが、レコードが1件も抽出されません(もちろん●●日付にデータを入れていないレコードは複数あります)。一方で、<>""や<>''で、●●日付にデータが入力されているレコードを抽出しようとした場合は、●●日付にデータが入力されているレコードが抽出されます。 テキスト型フィールドにデータが入力されていないレコードを抽出するクエリはどのようにしたら作成できるのでしょうか?

専門家に質問してみよう