- ベストアンサー
EXCEL&ACCESSなんて縁遠かったのに・・・【自動で振り分け?】
突然、DBの作製・整理を命ぜられました・・・ 既存のデータを、新しく整理して、統合し、データベースを構築せねばなりません。 [DBなどとはおこがましく、単に、既存データの整理程度です。] 今から書かせていただく程度のことがわかっていないので大変です。 Excel&Accessなんて縁遠かったのに・・・ 既存データで下記のようなレコードが数千あります。 1999/07/02Sun09:27E0810八戸営業所主任管理abcd1855Ddd123 2001/11/30Man23:02J0520那覇出張所課長作業sdfg0258Kio789 という風に、英数かな半角全角大文字小文字入交で、区切り全く無しのテキストデータでのみ抽出可能です。 レコードは改行で区切り、1列数千行の状態で抜き出しができます。 データには規則性があり同じ項目は同じ場所に書かれています。 そこで、皆さんにお伺いしたいのですが、 EXCEL&ACCESSでも、どちらでもかまいません、[できればAccess] このデータをカットアンドペーストして、 当該のアプリに取り込み、のち、マクロなどのワンボタンでの自動処理で 先頭から、何文字から何文字まではAに、次の何文字から何文字はBに・・・ という具合にそれぞれの項目ごとに振り分けて処理する方法はないものでしょうか??[自動で振り分けがしたい] お手隙でしたら、是非教えていただきたく、【ヒントだけでも・・・】 よろしくお願いします。
- LB41
- お礼率86% (53/61)
- オフィス系ソフト
- 回答数4
- ありがとう数7
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
このデータはテキストファイル(*.txt)と思いますので、(なければ、元から固定長テキストファイルを作ります) Accessで ファイル→ 外部データの取り込み→ インポート でファイルの種類をテキストファイルにして このテキストファイルを指定します。 後はAccessのテキストインポートウイザードに従います。 これが終わればテーブルができています。(当方Access2000です) Excelでも ファイル→開く でテキストファイルを指定すると同じようなテキストファイルウイザードが開きます。 お好きなほうで試して下さい。
その他の回答 (3)
- poor_Quark
- ベストアンサー率56% (1020/1799)
そうですね。#2のかたのやり方が手っ取り早いし、間違いないです。私はデータベースからだいぶ離れていたせいで反射的に正しい解決策が浮かばなかったようです。質問を締め切っていらっしゃらないので、未だに解決していないものと判断し、もう少し詳しく書いてみます。細部で違う点があるかもしれませんが、結果的にはうまくいきますのでご安心を。既存データが格納されたテキストファイルを"sample.txt"とし"My Document"のフォルダにあるとします。 アクセスでは… アクセス2000を立ち上げて最初の【新しいデータベースの作成】という画面で【空のデータベース(B)】にチェックを入れます。そのあと【OK】をクリックし、次の画面で適当な名前、例えば"daicho"という名前をつけ、右の【作成】ボタンを押します。 次に【データを入力してテーブルを作成する】を選び、一番上に「フィールド1」から順にフィールドが並ぶ表が現れます。【ファイル(F)】-【外部データの取り込み(G)】-【インポート(I)】でファイルの操作画面が現れます。その画面の一番下に【ファイルの種類(T)】がありますのでその箱の一番右にある小さな▼をクリックします。そうすると、スクロールウィンドーの下の方に【テキストファイル(*.txt,csv.txt…)】がありますので選びます。そうするとファイル名で"sample.txt"が選択できるようになりますのでそれを選びます。 テキストインポートウィザードの画面になりますので【固定長-フィールドの長さが固定されている(W)】のチェックボックスにチェックを入れ【次へ(N)>】をクリック。【新規テーブルに保存する(W)】のチェックボックスにチェックを入れ【次へ(N)>】をクリックすると、テキストデータが現れますのでマウスで区切りの垂直線を設定します。それが済んだら【次へ(N)>】-【新規テーブルに保存する(W)】にチェックを入れ【次へ(N)>】をクリック。後は主キーを設定し、インポート先のテーブル名を指定すればそのテーブルに、展開されます。 エクセルでは… エクセルを起動した後、【ファイル(F)】-【開く(O)】でファイルの種類をテキストファイルに設定し、"sample.txt"を選択し、【開く(O)】をクリックします。そうするとテキストファイルウィザードが開きますので【スペースによって…固定長フィールドのデータ(W)】にチェックし取り込みの開始行を1とし【次へ(N)>】をクリックします。【次へ(N)>】で区切りの作業をマウスで行い【次へ(N)>】-【完了(F)】でワークシートにデータが展開されます。 もし分からない点がありましたら補足欄を使って再度ご質問下さい。ポイントはnishi6さんへ。
お礼
ご回答ありがとうございました。 困り度3で質問しているのに、お礼が遅くなり申し訳ありません。 早速試してみました。悪戦苦闘の最中です。 問題は解決しました。本当にありがとうございました。
- poor_Quark
- ベストアンサー率56% (1020/1799)
1.テキストからcsvファイルに変換するソフトがありますので、それを使ってcsvファイルを作ります。 2.アクセスで表の枠組みをまず作ります。フィールド名は日付、曜日、時刻、記号1、営業所…などとなります。 3.csvファイルをインポートすればデータがテーブルに展開されます。 自分で試していないので自信なしとしますが、今から試してみます。
お礼
ご回答ありがとうございます。 今回はアクセスで処理しますが、別件でこのソフトを利用します。 便利なものを教えていただきありがとうございました。 別の部署で同じ目に遭っている者に紹介しました。[泣いて喜んでました] 大助かりです。
- Raphael
- ベストアンサー率21% (15/69)
Excelの場合です(access知りません) A列にその様なデータを入れておきます そしてLEFTとMIDを使ってください 1999/07/02Sun09:27E0810八戸営業所主任管理abcd1855Ddd123 をA1に入れた場合 (B1)=LEFT(A1,10) この場合日付がB1に入ります (C1)=MID(A1,11,3) 11文字目から3文字のSunがC1に入ります (D1)=MID(A1,14,5) D1に時刻が入ります このような方法で1列目を入力したら、 B1から1行目の最後までをコピーし、 そのしたの必要な場所まで選択→右クリック→形式を選択して貼り付け ここで値を選択して貼り付ければすべて出来ます MIDの使い方は、 =MID(どのマスの,左から何文字目から,何文字を)になります
お礼
ご回答ありがとうございました。 うまくいきました。エクセルの方がまだなじみます。 Dos時代の1-2-3以来、久々です。
関連するQ&A
- EXCEL→ACCESSインポートでセル内改行が機能しません・・。
EXCELデータをACCESSにインポートする局面で、 ・EXCELデータのセルは、CHAR(10)によって、セル内で改行されています。 ・これをACCESSへインポートすると、改行が機能せず連続した文字列となってしまいます。 ・ACCESSの該当項目は、メモ型(文字数が多いので)です。 EXCELでの表示と同一の表示がACCESSで得たいのです。 よろしくご指導下さい。
- 締切済み
- オフィス系ソフト
- Excel と Access または、Access と Excel との連携処理
(1)(初期処理として)、Excel(1.xls)よりアイテムセットしたパラメータ(起動するAccessのパス名)でAccess(A.mdb)を起動する。 (2)Access(A.mdb)の自動処理が終わると、次に起動させるAccess(B.mdb)のパスパラメータをExcel(1.xls)に渡し、Access(A.mdb)を終了する。 (3)パラメータを受け取ったExcel(1.xls)は、Access(B.mdb)を起動し、処理をする。 (1)より開始して、(2)(3)の繰り返し出来る方法を教えてください。 よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- エクセルでレコードを自動作成するには?
エクセル中級?者です。マクロをかじった程度ですが、 下記のパターンでレコードを自動追加作成するのに、簡単な方法はありますか? 項目 商品 数量 レコード1 A 3 レコード2 B 2 ↓ レコード1 A 1 レコード2 A 1 レコード3 A 1 レコード4 B 1 レコード5 B 1 商品別の n個の合計データより、単品毎n個のレコードを自動作成したいのです。 合計データだけでも2,000程あり、×約5レコードで10,000はコピーするだけでも大変で、なんとかエクセルのマクロ等で自動作成できないものでしょうか? シートやブックが変わっても結構です。宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- Access初心者です
Access2003を使って、あるアプリケーションを作ることになりました。 A 画面上部のキー項目を入力する B Aのキーを元にテーブルに登録されたデータを検索し、 全データを画面中部に0~複数行スクロール表示させる その下に、検索されたデータの数値合計欄を設け表示する C 画面下部には、データ追加欄があり入力後追加ボタンを押すと、 テーブルに追加され、画面中部に表示のデータが 自動的に表示更新される D CTRLキーによって、取消し(初期画面)、印刷等の機能がある というものです。 初心者なので、多分一番基本的なAとBの作り方がわかりません。 Aのキー項目を入力して、入力ボタンを押すと、テーブルからデータを読み出して、真ん中の一覧が表示されます。 ヘッダー項目を入力し、テーブルを検索し、一致するデータ全レコードを同じ画面の中部に表示する。 画面サイズ等は変更無く、画面に収まらないような場合は、 スクロールさせたい。 数値の合計項目も合計値を表示させたい。 このあたり全般、どうやったら、できるのかよくわかりません。 シングルレコードの画面は、よく解ったのですが、一度に複数レコードを処理させたりするのは初めてで、多分初心者過ぎて、わからなくなっているのは解るのですが、時間がなく、とりあえず形だけでも急いで作る必要があります。 どなたか、わかりやすい作り方の説明をしてあるHPでもあれば、教えていただけませんでしょうか? いろいろ書きましたが、初心者向けに、解りやすい説明があるサイトなどを教えていただければ助かります。 宜しくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- ACCESSの既存テーブルに、EXCELデータをレコードとして追加する事は可能ですか?
ACCESSの既存テーブルに、EXCELのデータをレコードとして追加する方法はありますか? 又は方法を説明しているサイト等ありましたら教えて下さい。 EXCELのデータは、シートの1行目に各項目名、2行目以降に各データが順次入力されている状態です。 尚、EXCELの項目名と、ACCESSのフィールド名は一致していない状態です。 例えば、 EXCELの項目名:「予約ID」、「予約名」、「予約日」 ACCESSのフィールド名:「rsv_id」、「rsv_name」、「rsv_date」 のような感じです。 ACCESSのフィールド「rsv_id」には、EXCELの「予約ID」項目のデータを入れなければいけません。 こういうことは出来るのでしょうか? ※マクロは使わないようにしたいです。 いったんACCESS上で、EXCELのデータを元に新規テーブルを作成してから、 その新規テーブルからデータを抽出して、既存テーブルにレコード追加するような、SQLを書けばできるでしょうか?
- ベストアンサー
- オフィス系ソフト
- AccessからExcel立ち上げ
Access2003で作成したテーブルをExcelに出力し、そのファイルをAccessから開き、罫線や列幅等フォーマットを自動的に整え、表示します。表示中にデータ確認し、印刷等の処理を行い、閉じて、またAccessの操作に戻りたいと思います。 この際、アクセスで設定したエクセルのオブジェクト変数をCloseしてしまうと、エクセル画面が閉じられてしまう為、AccessモジュールでのClose処理を行わないままとなっています。この為か、引き続いて条件を変えてエクセルに出力して、同様の処理を行うと、AccessモジュールからのExcelの自動フォーマット化が行われなくなってしまいます。Accessを再起動すれば、正常に処理できるので、オブジェクト変数のClose未処理が原因と考えています。 このような場合、一般にはどのように処理されているのでしょうか?Excel画面表示後、DoループDoEvents関数で待ち状態とし、ボタン操作でExcel操作の終了を知らせて、オブジェクト変数のClose処理を行えばいいのかと思いますが、一般にはどのように処理されているものなのかご教示下さい。
- ベストアンサー
- その他(データベース)
- 【ACCESS VBA】アクセスからデスクトップ上のエクセルを開く
ACCESSで、デスクトップ上の既存EXCELファイルにデータをエクスポートし、 処理後にそのファイルを開く処理を考えています。 上手くできれば、他の人にも使って貰えるようにしたいので 「デスクトップの取得」「そのファイルを開く」処理を教えてください。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excel→Access ADO接続
お世話になります ■ExcelからAccessに接続し社員Noを入力すると氏名が表示するように したいのですが。 ■Access側 社員管理.mdb 社員DB ID|社員No|社員名| 社員Noで検索させます 社員Noはランダムです 例:0001002200 例2:aあ0021aう001 ■Excel側 C5以下社員No入力欄(セル結合していますC5:J5) K5以下社員名表示欄(セル結合していますK5:X5) 社員No入力後Accessから値を取り出し社員名に名前が値が飛ぶようにしたい 社員No入力してもヒットしない場合は決められたエラー文字を入力させたい。 宜しくお願いいたします。 尚、Excelファイルすべてのワークシートに適用させたい 分かる方、宜しくお願い申し上げます
- ベストアンサー
- オフィス系ソフト
- Excel2007 2003の互換性
お世話になります。 いままでファイルメーカーを使っておりましたが 勝手が悪いので共通にしようと思います。 件数が100件未満のDBなのですがAccessは全員に入っておらず、Excelは標題どおり2007と2003がバラバラに入っている状況です。 状況 ・10人以下で使う ・Accessは全員に入っていない ・Excelは2007と2003が半々くらい ・データは100件程度 留意点やこういったものがお勧めなどありましたらぜひご教授下さい。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- ACCESS:2フィールドのデータ削除
添付のようなテーブルがあります。エラーの文字を項目A,B同時に削除する方法を教えていただけませんか。 よろしくお願いしませんか。 自分でやると同じレコードの関係のない横のデータも同時に消えてしまいました。
- ベストアンサー
- オフィス系ソフト
お礼
ご回答ありがとうございました。 アクセスでとりあえず整理と言うことになりましたので、助かります。 今DTP昔ホストが専門なのに・・・悲惨です。 コンピュータは何でも一緒だと思っているようです。年寄り連中は・・・