• 締切済み

関連がある複数のテキストファイルの扱い方

8月7日の質問No.8708191「Accessクロス集計で列数が多い場合の処理方法」ですが一部、未解決となります。 ですので、一旦その質問は締切りまして、再度内容を吟味して質問させていただきます。 関連会社から商品情報(十万件以上)に関する複数の「.txt」ファイルを頂きました。 この「.txt」ファイルには、商品に関する情報が記載されており、それぞれが関連し合ったファイルです。 これらを適切に関連を持たせ、最終的にはアップロード用に「.csv」として出力させたい為、内容が横1行に吐き出されるようにしたいです。 初歩的な質問になりますが教えてください。 作業環境はWindows7にExcel2003、Access2003がインストールされていますが、そのどちらも素人程度にしか扱えない状況です。 「.txt」の主情報(商品マスタ)は十万行以上になります。 金銭的なバックアップは見込めませんが、無料ソフトの導入などは問題ないです。 また、私以上に素人がこの処理をするかもしれない場合、どのような方法でアップロード用の情報にするのが良いでしょうか?

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.37

テキストファイルの既存テーブルへのインポートは、1つでもテーブルの規制に 違反する情報があるときはインポートできないようですね。 そこで、元のテーブルと同じ項目で規制を緩くした【中継】テーブルインポートして テーブル間で移動してはと考えました。 【テキストファイル】⇒【中継テーブル】⇒【元のテーブル】  ★【中継テーブル】⇒【元のテーブル】で元のテーブル規制に違反しているものは   弾きだされます。弾き出された件数は両テーブルのレコード数の差でわかります。   差が少ない時はエラーデータが存在すると考えて差し障りが無いですが   多いと想定したした仕組みが悪く、ふりだしから? 1.中継テーブル作成 1.1.【商品マスタ】をコピペして名称を【商品M中継】 1.2.【商品M中継右クリック】⇒【デザインビュー】⇒【商品番号】⇒【主キーツール】 1.3. ⇒【その他の項目を初期状態にする】 1.4.テーブルルックアップを外す   ⇒【ルックアップ項目】⇒【ルックアップタグ】⇒【表示コントロールの右端】⇒【テキストボックス】 2.インポートコード(VBA) 差し替え   以下は商品マスタのインポートです。   【メニュー右クリック】⇒【デザインビュー】⇒【商品マスタインポート】⇒【イベントタグ】⇒【クリック時】   ⇒【Private Sub 商品マスタインポート_Click() ~End Subまでを次と差し替え】 ----------------------------------------------------------------------- Private Sub 商品マスタインポート_Click() DoCmd.SetWarnings False If MsgBox("商品マスタ再インポート", vbYesNoCancel) = 6 Then 商品マスタインポートRTN Else MsgBox ("取り消し") End If End Sub Private Sub 商品マスタインポートRTN() DoCmd.SetWarnings True DoCmd.RunSQL ("delete from 商品M中継;") DoCmd.RunSQL ("delete from 商品マスタ;") DoCmd.TransferText acImportDelim, , "商品M中継", "D:\okwave\テキスト\商品マスタ.txt", True DoCmd.RunSQL ("Insert Into 商品マスタ(商品番号,商品名,メーカコード, " _ & "ブランドコード,重要成分コード,大分類コード,販売価格,廃番フラグ,更新日) " _ & " Select 商品番号,商品名,メーカコード,ブランドコード,重要成分コード, " _ & "大分類コード,販売価格,廃番フラグ,更新日 From 商品M中継 ;") MsgBox ("商品マスタ 再インポート完了") DoCmd.SetWarnings False End Sub ----------------------------------------------------------------------- > 質問No.8775302 http://okwave.jp/qa/q8775302.html   楽しみですね > 2ヶ月もの間、大変親身にご相談にのって頂いてありがとうございました。   2か月間アッという間でした。   この間一貫せず バラバラの説明によく付いてきてくれました。 >まだまだAccessはわからない事だらけですが、そろそろ自分の力で解決できるように努力するべく頑張る頃合いかもしれません。   2か月前はVBAを避けておられましたが、   EXCELは仕組みを自分で考え、自分で使うのが一般的ですが、   ACCESSは私創る人、あなた使う人といった感じですね

lotus2014
質問者

お礼

お返事が遅くなりまして申し訳ございません。 回答ありがとうございます。 早速ですが > 1.3. ⇒【その他の項目を初期状態にする】 その他の…とは、商品番号の他の全ての項目の事でしょうか? 初期状態にするとは、データ型の事でしょうか? よく分からなかった為、商品番号を主キーにした以外はそのままの状態にしました。 > 1.4.テーブルルックアップを外す すみません、ルックアップしている項目がどのテーブルにも存在していませんでした。 いつぞやルックアップの設定方法を教えて頂いた事は覚えているのですが… 覚えていらっしゃったら、どの項目が何をルックアップしていたのか教えて頂けますでしょうか? こんな状態ですが、VBAを差し替え後、商品マスタをインポートしてみたところ「パラメータの入力」と小窓が出現しメーカーコードを求めてきました。 > 2か月間アッという間でした。 > この間一貫せず バラバラの説明によく付いてきてくれました。 とんでもございません。 お忙しい日も、返答するのが億劫な日もあったでしょうに、毎日お付き合い頂いて大変感謝しております。 一見初心者にはバラバラに感じる説明もありましたが、後の設定に関連していたりしたので、その時にストンと内容が頭に入り、大変分かりやすかったです。 今後も質問する事もあるかと思いますが、機会がありましたらまたお付き合い頂けると嬉しいです^^

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.36

下記URAは、見出しの無いテキストファイルをインポートする方法らしいです。 Http://office.microsoft.com/ja-jp/access-help/HA001226310.aspx 上記URLはschema.ini に項目名、その他を別に定義することで、 項目名の無いテキストファイルをインポートする方法らしいのですが、 手順3.で詰まってしまいましたが、試す価値が有りますね。

lotus2014
質問者

お礼

こんばんは。 schema.iniを作成してインポートすると実行時エラー '2391':がでた為、調べたところインポート定義が必要という事で、テキストファイルはカンマ区切りのまま、VBAの第二引数にインポート定義を指定したところ、インポートできるようになりました。 他にエラーが出ているテーブルもある為、それらもインポート定義を第二引数に指定してうまくいくかどうか検証中です。 本日はここまでしか進まず、質問の締め切りになってしまう為に別の質問を立てました。 質問No.8775302 http://okwave.jp/qa/q8775302.html 2ヶ月もの間、大変親身にご相談にのって頂いてありがとうございました。 まだまだAccessはわからない事だらけですが、そろそろ自分の力で解決できるように努力するべく頑張る頃合いかもしれません。 もし、気分が乗るようでしたらまたお付き合いください^^

lotus2014
質問者

補足

回答ありがとうございます。 schema.iniを作成し、商品マスタ.txtと同じディレクトリに置けたのですが、その後どのように使用するのかわからず、現在検索中でございます。 通常通りインポートするのだとしたら、実行時エラー '2391':がでました。 明日はPCが使えない為、結果は10/1にご報告致しますね。 この質問の締め切りが10/2の為、もしかしたら新規に質問を立てるかもしれません。 もし、気分が乗るようでしたらまたお付き合いください^^

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.35

当初の目的は http://okwave.jp/qa/q8733543.html で解決しましたね、でもまだ閉まっていません、ベストアンサー完了で閉まります。 多分ベストアンサーを選んでもう一度ベストアンサーにするで完了します。 ACCESSは色々制約があり、大変だなと感じられたことと思いますが。 その分不都合回避の仕組みが組み込んであると思って下さい。 商品マスタのフィールドの数が38、単票形式なら問題ないのですが、レコードの送りが、クリックで1レコードしか移動できません。 帳票形式ならスクロールが効きますが、1レコード1行とし、1画面に多くのレコードを表示する仕掛けです。 添付画面は、フォームヘッダーの見出し項目、詳細にレコードの1部分、フォームフッターに残りのフィールドを配置しました。 これで、左端のレコードセレクタに右向き三角カレントrコードでこの残りの項目がフォームフッターに表現されます。 テーブル、フォームにはいろいろなプロパティーがあります。興味おありですか

lotus2014
質問者

補足

こんばんは。 今日は台風の影響で雨風が強かったですが、明日は全国的に秋晴れのようですね! 朝晩は冷えるようなので、ご自愛下さい。 さて、本日は仕事が少し山になっていたものであまりAccessにさわれておりません。 > ACCESSは色々制約があり、大変だなと感じられたことと思いますが。 制約がある分ファイルも必要最低限の内容となり、扱いやすくもなるようですね。 扱いやすくする為に、最初の段階で元データを理解し、整理する事が肝心のようですが、それが1番難しいです… > 商品マスタのフィールドの数が38、単票形式なら問題ないのですが、レコードの送りが、クリックで1レコードしか移動できません。 商品マスタに追加するような場合は見やすくて良いですね。 > 帳票形式ならスクロールが効きますが、1レコード1行とし、1画面に多くのレコードを表示する仕掛けです。 今回は登録する事はないので帳票形式が最適のようですね。 添付画像がその例という事ですね。 質問した当初はAccessでこんな事ができると思っていなかったものですから、大変おどろきました。 プロパティーですか… 目の前の処理に追われじっくり触ってはいないのですが、例えば住所入力支援などの事でしょうか? 住所入力支援やリストボックスからの選択など、便利で間違いがグッと減る仕組みは今後機会があれば取り入れたいと思います。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.34

お疲れ様です、もう意地ですね 先ず、商品マスタのリレーションを外して、商品番号の主キーを外してチェックして下さい。

lotus2014
質問者

補足

> お疲れ様です、もう意地ですね 意地ですね^^; なんだか、とんでもない事に巻き込んでしまって申し訳ございません。 > 先ず、商品マスタのリレーションを外して、商品番号の主キーを外してチェックして下さい。 ・リレーションを外す ・主キーを外す ・あるフィールドの最大3つの短文の区切り文字をカンマからアンダーバーへ変更 ・タブ区切りをカンマ区切りへ変更 以上4点を変更しチェックしたところ、やはり前回と同じエラーテーブルが作成されます。 インポートされた内容を確認しました。 補足に書いた1~4について 1.解消されました。 2.やはりダブルクォーテーション以降のHTMLがインポートされないまま 3.レコードによりインポートされるもの、されないものがあります。(実質、使用しないフィールドなので問題はありません) 4.解消されました。 そして、手動(ウィザード)でインポートした場合ですが、1~4についての現象は全て解消されました! 何が違うのか私では分かりかねますが… ↓別の質問に載せたリレーションの画像ですが、そろそろQの締め切りの為、画像削除しようかと思っております。 http://okwave.jp/qa/q8733543.html

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.33

>気づいたらすっかり秋ですね。 >関東圏では長袖の方もチラホラと目立つようになってきました。 関東圏ですか、自分は大阪から倉敷の田園地帯に移って3年が過ぎました。 朝夕の暑さがゆるみ、稲穂が取り入れ前の美しい季節になりました。 >説明テーブルで止まってしまう為、VBAから説明のインポートコードを省いてのインポート結果です。  リレーションで【説明】は【商品マスタ】の下位ですね、  上位が解決しなければインポートできません。  先に追加した【商品マスタインポート】は【商品マスタ】のみを対象にしています。  これには テーブルの初期化も組み込んでいるので  テキストファイル修正後⇒インポートチェックが繰り返し出来ます。  先ず、行見出しと1行だけのデータの2行でインポートチェックして行見出し確定してから  テキストファイルの増やしてチェックで不都合な行の修正、除去を繰り返して  全商品マスタのテキストファイルのインポートが終了してから次へ進みます。 >説明テーブルで止まってしまう原因として考えられるのは、配番に主キーが設定されており、インデックスでは「はい(重複なし)」となっておりますが、実際のテキストデータを見ると、重複があるからではないかと思います。  その通りです。それに【商品マスタ】に上位のレコードがあることです。 >配番に主キーが設定されており、インデックスでは「はい(重複なし)」となっておりますが、実際のテキストデータを見ると、重複があるからではないかと思います。  主キー設定をはずし、インデックスでは「はい(重複あり)」  主キーを外すにはテーブルのデザインモードで主キーのフィールドをクリック後、主キーツールをクリック   >▼カテゴリ_インポート エラー >エラー│フィールド│行 >データ型の変換エラー│カテゴリカナ名│174 >▼カテゴリ中継_インポート エラー >エラー│フィールド│行 >データ型の変換エラー│小分類コード│6894 >▼商品マスタ_インポート エラー >エラー│フィールド│行 >解析不能なレコード│空欄│2 >▼名前の自動修正保存エラー >オブジェクト名│オブジェクトの種類│エラーの原因│時刻 >商品マスタ│テーブル│オブジェクトを保存できませんでした│2014/09/22 15:03:17  フィールド名(商品コード⇒商品番号)変更時に発生したものと思います。   リレーションシップを外してからでは変更できますか >また、「商品マスタ_インポート エラー」の原因は正にフィールドの空欄ではないかと、只今検索中です。 >元々タブ区切りだったデータを正規表現でカンマ区切りに変更しました。 >その際に、データが入っていないフィールドはカンマが続けて,,と表示されています。  これはフィールド内が空白という意味で、主キーフィールドと値要求のフィールド以外は不都合ありません。 >その他のエラーも、種類を検索して値の確認をしてみます。  上位テーブルの解決が先ですが、リレーションを外せばチェック出来ます。   今こちらは添付のようになっています。  【商品マスタ】の左は上より【HOGE】、【メーカー】、【ブランド】です。  途中追加した【仕様】、【仕様明細】は除去しました。

lotus2014
質問者

補足

お返事が遅くなり申し訳ございません。 回答ありがとうございます。 > 上位が解決しなければインポートできません。 そうですね、まず商品マスタの問題を解決しなくてはならないですね。 一応、説明テーブルは主キーを外しました。 > 先ず、行見出しと1行だけのデータの2行でインポートチェックして行見出し確定してから 何度設定などを修正してもうまくいかない為、手動(ウィザード)でインポートしてみました。 そして分かった事がいくつか。 まず、行見出しと1行だけのデータの2行でインポートチェックした結果 ▼商品マスタ_インポート エラー エラー│フィールド│行 解析不能なレコード│空欄│2 ▼名前の自動修正保存エラー オブジェクト名│オブジェクトの種類│エラーの原因│時刻 商品マスタ│テーブル│オブジェクトを保存できませんでした│2014/09/24 13:56:19 1. 正しくインポートされていないフィールドがある。 「メーカーコード」「ブランドコード」はテキスト型としております。 どちらも、A176やR513等のように、頭に半角英字と半角数字の組み合わせですが、インポートの際に英字が削除されてしまいます。 「大分類コード」は1~20まであり、テキスト型としております。 1の場合は01、9の場合は09と表記されているのですが、インポートの際に0が外れてしまいます。 2. あるフィールドのダブルクォーテーション以降がインポートされない。 そのフィールドにはHTMLが入っています。 <table width="750"><tr><td> …このような内容が以降、改行なしで続くものですが、このカッコ内のように→「<table width=」ダブルクォーテーションの前しか取り込めておりませんでした。 3. この2.のフィールド以降、全て内容がインポートされない。 恐らく上記のエラーでインポート自体止まってしまっているのかもしれません。 4. フィールドが最大で40までありました。 先方から頂いた情報では商品マスタのフィールド数は38です。 行見出しを除き、2行目以降もレコードを増やして手動(ウィザード)でインポートしてみたところ、フィールド数が40で表示されていました。 よくよく元データを見てみると、あるフィールド内に最大3つの短文が入っているのですが、それらをカンマで区切っていました。 タブ区切りからカンマ区切りに変更した為、ずれてしまったようです。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.32

>フォームの「商品登録」「説明登録」「説明サブ」の方は商品コードのままの名称ですが、そのままでよいでしょうか。  何かと面倒なことが起きそうです。これも修正して下さい。  テキストのデザインビューで修正して、リレーションシップで確認して下さい。   >▼商品マスタ_インポート エラー >エラー│フィールド│行 >解析不能なレコード│空欄│2  恐らく。主キーの商品番号が空白の行が2行存在するのでは

lotus2014
質問者

補足

こんばんは。 気づいたらすっかり秋ですね。 関東圏では長袖の方もチラホラと目立つようになってきました。 さて、全テキスト・全テーブルの値を確認後、再度インポートした結果をご報告します。 説明テーブルで止まってしまう為、VBAから説明のインポートコードを省いてのインポート結果です。 説明テーブルで止まってしまう原因として考えられるのは、配番に主キーが設定されており、インデックスでは「はい(重複なし)」となっておりますが、実際のテキストデータを見ると、重複があるからではないかと思います。 ▼カテゴリ_インポート エラー エラー│フィールド│行 データ型の変換エラー│カテゴリカナ名│174 ▼カテゴリ中継_インポート エラー エラー│フィールド│行 データ型の変換エラー│小分類コード│6894 ▼商品マスタ_インポート エラー エラー│フィールド│行 解析不能なレコード│空欄│2 ▼名前の自動修正保存エラー オブジェクト名│オブジェクトの種類│エラーの原因│時刻 商品マスタ│テーブル│オブジェクトを保存できませんでした│2014/09/22 15:03:17 また、「商品マスタ_インポート エラー」の原因は正にフィールドの空欄ではないかと、只今検索中です。 元々タブ区切りだったデータを正規表現でカンマ区切りに変更しました。 その際に、データが入っていないフィールドはカンマが続けて,,と表示されています。 その他のエラーも、種類を検索して値の確認をしてみます。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.31

次の一つでも違反している行が存在するときは全ての行がインポートできません 1.テキストファイルの見出し項目とデータの列数が一致 2.テキストファイルの見出し項目とデータの列型式(文字列or数値)が一致 3.テキストファイルの見出し項目の全てがテーブルにフィールドが存在する 4.テキストファイルとフィールドのデータ型が一致している。 フィールドの属性に違反する行ははじかれ、他はインポートされます ・主キー、インデックスで(重複なし)になっている ・値要求

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.30

解答No.29のコーディングに誤りがありました こちらでお願いします。 ----------------------------------------- Private Sub 商品マスタインポート_Click() DoCmd.SetWarnings False If MsgBox("商品マスタ再インポート", vbYesNoCancel) = 6 Then DoCmd.RunSQL ("delete from 商品マスタ;") DoCmd.SetWarnings True DoCmd.TransferText acImportDelim, , "商品マスタ", "D:\okwave\テキスト\商品マスタ.txt", True MsgBox ("商品マスタ 再インポート完了") Else MsgBox ("取り消し") End If DoCmd.SetWarnings False End Sub ---------------------------------------

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.29

>商品マスタ_インポート エラー(解析不能なレコード)  これはテーブルとして追加されていますね、このテーブル除去してください。 >説明_インポート エラー(フィールドの切り捨て:商品コード)  商品コード(商品番号)は6桁ですよね、区切り記号が抜けて次のフィールドと一つになっている >名前の自動修正保存エラー(商品マスタ:テーブル:オブジェクトを保存できませんでした)  テーブルの商品コードを商品番号に統一した時に起きたものでしょうか  リレーションシップに全てのテーブルを表示して、商品コードとあるテーブルは  テーブルのデザインビューで商品番号に変更して下さい >商品マスタ以降でてくるかもしれないです。  先ずこれから手を付けましょう  メニューにラベル【商品マスタインポート】を配置しクリックイベントで表示されたところへ  次のコードの両端を除いたものをコピペして、メニューを再起動し  商品マスタのテキストファイルの1行に見出し行を追加して  【商品マスタインポート】を実行して、結果を商品マスタ登録で確認します  OKならばテキストファイルの行数を増やして、同じことを繰り返します。  ここでは商品番号が重複しているときに警告が出て重複分は弾かれます ------------------------------------------------------- Private Sub 商品マスタインポート_Click() DoCmd.SetWarnings False If MsgBox("商品マスタ再インポート", vbYesNoCancel) = 6 Then DoCmd.RunSQL ("delete from 商品マスタ;") DoCmd.SetWarnings True DoCmd.TransferText acImportDelim, , "商品マスタ", "D:\okwave\テキスト\商品マスタ.txt", True Else MsgBox ("取り消し") End If DoCmd.SetWarnings False MsgBox ("商品マスタ 再インポート完了") End Sub ------------------------------------------------------- >「エラーテーブルが作成されたもの」のうち、商品マスタ_インポート エラー(解析不能なレコード)を検索したところ、以下のURLを見つけました。 >http://okwave.jp/qa/q123179.html  自分も http://support.microsoft.com/kb/155512/ja を見つけました  schema.iniを作成して見出し項目を定義するらしいですがむつかしいですね   商品マスタにはHTMLが入ってる項目もあり、HTMLの中にダブルクォーテーションが存在する為、それがひっかかっているかも知れません。 説明_インポート エラー(フィールドの切り捨て:商品コード)を検索したところ、以下のURLを見つけました。 http://www.accessclub.jp/bbs/0001/beginers475.html 試しにインポート定義を設定し、VBAにインポート定義を設定してみたところ、エラーテーブルは作成されなかったものの、インポートはされていませんでした… また、インポートVBSから商品マスタを削除し、インポートをしてみたところ以下2つのエラーテーブルが作成されました。 カテゴリ_インポート エラー(データ型の変換エラー:カテゴリカナ名) こちらは、その名の通り、カテゴリ名のカナ読みが入る為、テキスト型にしてあります。 但し、必ずしもカナ名が入っているわけではなく、数字が入ってる場合もあります。1~20行目までは少なくとも数字です。 カテゴリ中継_インポート エラー(データ型の変換エラー:小分類コード) 小分類コードは数字6桁です。0から始まる場合もあります。ただ先方によると、ここは文字列として扱うという事で、テキスト型としてあります。

lotus2014
質問者

補足

回答ありがとうございます。 > 商品コード(商品番号)は6桁ですよね、区切り記号が抜けて次のフィールドと一つになっている いいえ、商品コードは半角英数8桁です。 エラーテーブルを削除してしまった為、フィールドが合体していたか確認できませんでした… > テーブルの商品コードを商品番号に統一した時に起きたものでしょうか 正しくは商品コードの為、全てのテーブルは商品コードのまま変更しておりませんでした。 一端、商品番号へ修正してみます。 フォームの「商品登録」「説明登録」「説明サブ」の方は商品コードのままの名称ですが、そのままでよいでしょうか。 > 次のコードの両端を除いたものをコピペして、メニューを再起動し 両端がどの部分の事か分からなかった為、コード全てをコピペして【商品マスタインポート】を実行した結果 ▼商品マスタ_インポート エラー エラー│フィールド│行 解析不能なレコード│空欄│2 ▼名前の自動修正保存エラー オブジェクト名│オブジェクトの種類│エラーの原因│時刻 商品マスタ│テーブル│オブジェクトを保存できませんでした│2014/09/22 10:33:45 > 次の一つでも違反している行が存在するときは全ての行がインポートできません なるほど、確認してみます。 確認、修正後に再度インポート結果をご報告しますね!

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.28

>> 両者の違いはレコード件数です。 >申し訳ないのですが、なぜレコード件数が違うのか分からないです。 >同じものなのにレコード件数が違う???など考えているのですが、どこを見ればよ いのでしょうか。  メインフォームに複数のサブフォームを並列に並べることが出来ます。  1.【商品マスタ】へ【hoge】リレーションをかける  2.【hoge】で帳表形式のフォームを作成  3.メインフォームをコピペして別名にする  4.メインフォームをデザインモードで開く  5.商品名の抽出条件に >=[forms][メニュー][商品名検索]  6.hogeのサブフォームを【サブフォーム/サブレポート】ツールでhogeを並べる  【サブフォーム/サブレポート】は中央辺りの▼に隠れています。   >実行時エラー2391 >貼り付け先の商品マスタテーブルにはF39フィールドがありません >商品マスタテーブルのフィールドは38種類です。 >商品マスタ.txtの項目名も38種類で、フィールド名と項目名は同じになっています。  自分も悩みました。テーブルにF39を追加するとF40がありませんとなります  間違い探しですね、一つだけ違うものがあります。  ,と. スペースが入っている等、excelで比較して下さい C1=if(A1=B1,◎、× >"カテゴリコード","カテゴリ名","親カテゴリ","成分フラグ","階層" >01化粧品0101 >"カテゴリコード","カテゴリー名","親カテゴリ","成分フラグ","階層" >"01","化粧品","01",0,0 >となり、これもインポート可能です。  フィールドのデータ形式に合わせて、文字列と数値明示していますね  商品マスタのフィールド数38種類 抽出の項目が潜んでいそうですね  大分類、中分類、小分類、Yes/No型、日付等  

lotus2014
質問者

補足

回答ありがとうございます。 > ,と. スペースが入っている等、excelで比較して下さい C1=if(A1=B1,◎、× うーん、目視も計算式も使用してみたのですが全て同じようです。 > "01","化粧品","01",0,0 正規表現で文頭と文末にダブルクォーテーションの追加をしようとしたところ、検索結果が0バイトになる検索としてエラーになってしまった為、現時点ではファイルの変更ができていません。 > 商品マスタのフィールド数38種類 抽出の項目が潜んでいそうですね まだレコード件数の違いについて検証できておりませんので把握していないのですが、そうなるとやっかいですね… ▼以前、回答No.18の補足にインポートエラーについて書いたものなのですが、 ・データ自体取り込めていないもの ・1レコード1フィールドに保存されてしまったもの ・エラーテーブルが作成されたもの 商品マスタ_インポート エラー(解析不能なレコード) 説明_インポート エラー(フィールドの切り捨て:商品コード) 名前の自動修正保存エラー(商品マスタ:テーブル:オブジェクトを保存できませんでした) テキストデータをカンマ区切りに変更したところ、インポートVBA記述の商品マスタより前に書かれている「メーカー」と「ブランド」は正常にインポートされたようです。 この事から「データ自体取り込めていないもの」に関しては商品マスタ以降でてくるかもしれないです。 「1レコード1フィールドに保存されてしまったもの」に関しては、カンマ区切りに変更することによって正常な位置に取り込めるようになりました。 「エラーテーブルが作成されたもの」のうち、商品マスタ_インポート エラー(解析不能なレコード)を検索したところ、以下のURLを見つけました。 http://oshiete.goo.ne.jp/qa/123179.html 商品マスタにはHTMLが入ってる項目もあり、HTMLの中にダブルクォーテーションが存在する為、それがひっかかっているかも知れません。 説明_インポート エラー(フィールドの切り捨て:商品コード)を検索したところ、以下のURLを見つけました。 http://www.accessclub.jp/bbs/0001/beginers475.html 試しにインポート定義を設定し、VBAにインポート定義を設定してみたところ、エラーテーブルは作成されなかったものの、インポートはされていませんでした… また、インポートVBSから商品マスタを削除し、インポートをしてみたところ以下2つのエラーテーブルが作成されました。 カテゴリ_インポート エラー(データ型の変換エラー:カテゴリカナ名) こちらは、その名の通り、カテゴリ名のカナ読みが入る為、テキスト型にしてあります。 但し、必ずしもカナ名が入っているわけではなく、数字が入ってる場合もあります。1~20行目までは少なくとも数字です。 カテゴリ中継_インポート エラー(データ型の変換エラー:小分類コード) 小分類コードは数字6桁です。0から始まる場合もあります。ただ先方によると、ここは文字列として扱うという事で、テキスト型としてあります。

関連するQ&A

  • 複数のテキストファイルを1つにまとめる

    同一フォルダ内にある複数のテキストファイルの内容を1つにまとめる方法を探しております。 例えば、 a.txt, b.txt, c.txt が同一フォルダにあり、 それぞれの内容が AAA BBB CCC である時に、これらをまとめて matome.txtとして、その内容が AAA BBB CCC となるようなプログラムを書きたいのですが、どの様な方法が考えられますでしょうか。 上の例では3つのテキストファイルですが、実際に処理したいファイルは数百個になる為、一つ一つファイル名を入力する作業が大変で困っております。 同一フォルダ内のファイルをファイル名順に一度に読み込み、まとめる方法がありましたらお教え下さい。

  • バッチファイルで複数のテキストファイルの置換

    バッチファイルで以下のような処理を行うことはできないでしょうか? フォルダ1以下の全てのテキストファイル内の abcde という文字列を あいうえお に置換して、上書き保存ではなく 元のファイル名+(編集済み).txt というファイル名で同じ場所に保存できないでしょうか。 バッチファイルで出来ない場合他の物でも構いません。 ――――――――――――――――――――――――――――― 処理前 フォルダ1   │   ├フォルダ2   │  └ファイル1.txt (内容:123abcde)   │   ├フォルダ3   │  └フォルダ4   │     └ファイル2.txt (内容:abcde123abcde123)   │   └フォルダ5      └ファイル3.txt (内容:456fghij) ――――――――――――――――――――――――――――― ↓ ――――――――――――――――――――――――――――― 処理後 フォルダ1   │   ├フォルダ2   │  └ファイル1.txt (内容:123abcde)   │  └ファイル1(編集済).txt (内容:123あいうえお)   │   ├フォルダ3   │  └フォルダ4   │     ├ファイル2.txt (内容:abcde123abcde123)   │     └ファイル2(編集済).txt (内容:あいうえお123あいうえお123)   │   └フォルダ5      └ファイル3.txt (内容:456fghij) ――――――――――――――――――――――――――――― こんな感じで出来ないでしょうか。 よろしくお願いします。

  • 沢山のテキストファイルを一つに

    下のように、Testフォルダに Area1、Area2・・・とフォルダがあり、 その中に、Sample.txtがあります。 C:\Test\Area1\Sample.txt C:\Test\Area2\Sample.txt C:\Test\Area3\Sample.txt ・ ・ ・ C:\Test\Area30\Sample.txt それぞのフォルダのSample.txtは "1234567890.123" "2345678901.234" "3456789012.345" . . . のように、数桁の数字が数百行並んでいます。 例えば、 Area1\Sample.txt に100行、 Area2\Sample.txt に200行、 Area3\Sample.txt に150行あるとします。 これを、 1~100行にArea1\Sample.txtの内容を、 101~300行にArea2\Sample.txtの内容を、 301~450行にArea3\Sample.txtの内容を、 として、Area30までのSample.txtを並べた 一つのテイストファイルに書き直したいのですが、 何しろ沢山あるので、一つ一つ開いてコピぺでは、 書き落としなども心配ですし、毎回大変時間が掛かります。 簡単に並べて書き出す方法はないでしょうか。 Excel等を使ってできないでしょうか。 宜しくお願いします。

  • バッチファイルでテキストファイルを分割したい

    テキストファイルを、指定した数値の倍数の行を、指定した個数に分割するバッチファイルを作成しようとしています。 例えば、以下の様な内容の「in.txt」というテキストファイルを3分割したい場合、 ----- in.txtの内容 ----- 1 2 3 4 5 6 7 8 9 10 ------------------------ 以下の様な内容で、 「out1.txt」「out2.txt」「out3.txt」として出力したいのです。 ----- out1.txtの内容 ----- 1 4 7 10 -------------------------- ----- out2.txtの内容 ----- 2 5 8 -------------------------- ----- out3.txtの内容 ----- 3 6 9 -------------------------- 自分はプログラミングの知識がないので、WEBに書かれている構文を少し書き換えたりして試しているのですが、うまく行きません。 AWKを使い、以下のようなバッチファイルを作成して実行してみましたが、「out3.txt」だけがうまく行きませんでした。構文の意味も分からないので修正も出来ません。 awk "NR%%3==1" "in.txt" > "out1.txt" awk "NR%%3==2" "in.txt" > "out2.txt" awk "NR%%3==3" "in.txt" > "out3.txt" AWKの解説ページを読み始めたのですが、時間的な猶予があまり無く、今回質問させて頂いた処理が出来るようになるまでまだ時間が掛かりそうなので、どなたかお分かりの方がおられましたお教え頂けないでしょうか。 AWKでなくとも、sedでもPerlでもその他のコマンドでも構いませんし、スクリプトファイルを読み込めるコマンドでしたらスクリプトでの書き方でも結構ですので、ご存知の方がおられましたらお教え頂けないでしょうか。

  • 複数テキストを一行ずつファイル名を付けて結合する方法

    複数テキストを一行ずつファイル名を付けて結合する方法 フォルダにある複数のテキストデータを1つのテキストデータに結合する際、テキスト1行毎の先頭にファイル名を付けたいのですが。具体的には以下の通りです。 最終的にはexcelに取込み処理するので、excelのマクロかDOS系でできるとあり難いです。 [file1.txt] 1111111111 2222 33333333 [file2.txt] 123 1234 ↓ [all.txt] file1.txt 1111111111 file1.txt 2222 file1.txt 33333333 file2.txt 123 file2.txt 1234

  • テキストファイルを一つにまとめる

    一つののフォルダ内に複数のテキストファイルがあります a.txt b.txt c.txt があり内容はそれぞれ 日付 商品名 数量と同一項目にしてあります これを同じフォルダに自動で一つのファイルにまとめる方法はありませんか 超初心者です よろしくお願いします

  • Excel VBAで列ごとのデータをテキストファイルへ書くには?

    エクセルのシート(たとえばSheet1)が以下のようになっているとします。 A B C D E F 1 商品A 11111111 あいうえお 3 1000 2 商品B 22222222 かくくけこ 1 2500 3 商品C 33333333 さしすせそ 2 3500 ・ ・ これを決まった列ごとにテキストファイル(固定ファイル名)に書き出すということは、エクセルのVBAで可能でしょうか? テキストファイルの内容は以下のようにしたいのです。 E列を数量として、その分だけのテキスト行を書き出したいのですが… <<bbb.txt>> 商品A 商品A 商品A 商品B 商品C 商品C ・ ・ <<ccc.txt>> 11111111 11111111 11111111 22222222 33333333 33333333 ・ ・ <<fff.txt>> 1000 1000 1000 2500 3500 3500 ・ ・ また、このようなことが参考になるHPがあればお教え願いたいのですが。 以上よろしくお願いします。

  • テキストファイルを1行ずつ別のファイルに分割する

    400行ぐらいのテキストファイルを、1行ずつ別のファイルに分割したいと思います。 ファイル名は**001.txtのように、(**は任意の文字列、数字は連番)なってくれれば嬉しいです。 どなたかこのような処理のできる簡単な方法をご存じないでしょうか? よろしくお願いします。

  • エクセルの各シートに複数のtxtファイルを取り込む

    Excel2013を用いたデータ整理をしているのですが,複数のファイルを扱う上でマクロを用いた効率化をしたいと思い,質問させていただきました. いま,Folder1 というフォルダに,text1 から text40 までの 40個のtxtファイルがあります. これらのファイルを,エクセル上であらかじめ作成してある Sheet1 から Sheet40 にそれぞれ貼り付けたいと考えています. txtファイルは,4列で構成されており,タブでそれぞれ区切られています. 行数は20,481行です. txtの中には,0 の値が入った箇所もあるため,その情報が消えないで貼り付けられると望ましいです. また,タブのところでしっかり区切られ,違うセルに貼り付けられると,ありがたいです. 質問は以上です. お手数ですが,よろしくお願いします.

  • 外部テキストファイルの書き換えと作成について

    外部テキストファイルの操作について悩んでおります。 アドバイスお願いします。 まず、外部テキストファイルdate.txtファイルの中身は以下のような具合です。 2/19 2/18 2/09 2/14 2/17 というたった五行の日付情報です。 この日付情報をユーザーがhtml上(実際はdate.phpというファイルです)で自由に変更できるようにしたいというのが私の処理の理想です。 そこで、この日付情報のそれぞれをhtmlのinput type=textのvalue値として、まず読み込ませて表示させます。 そしてユーザーは5つそれぞれを書き換え、もしくはそのまま変更なしでもかまいませんが、最終的にsubmitでphpに送信します。(自分自身、date.phpに送信します。) そのあと、date.txtファイルがユーザーの指定通りに書き換えられるという仕組みです。 さらに、その書き換えられた際に、date.txtファイルとは別に、updated.txtファイルを生成したいと思っています。(生成というか、常にdate.txtファイルの中身が変更される際に、updated.txtファイルも変更されるようにしたいということです。) そのupdated.txtファイルの中身は、 v_hensu1=2/19&v_hensu2=2/17&v_hensu3=2/14&v_hensu4=2/17&v_hensu5=2/15 というようにしたいと思っています。改行は必要ありません。 date.txtの日付情報を上からそれぞれv_hensu1、v_hensu2に当てはめていって、それぞれを&でつなぐだけです。 以上で処理の流れは完了です。 そこでわからないのは、「最初にdate.txtファイルを開く際に使う関数」と、 次に「date.txtを書き換える際に使う関数」と、 「updated.txtを作るための関数」です。 ファイル操作について、また簡単な例をあげていただけますと幸いです。どうぞ宜しくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう