dポイントプレゼントキャンペーン実施中!

8月7日の質問No.8708191「Accessクロス集計で列数が多い場合の処理方法」ですが一部、未解決となります。
ですので、一旦その質問は締切りまして、再度内容を吟味して質問させていただきます。

関連会社から商品情報(十万件以上)に関する複数の「.txt」ファイルを頂きました。
この「.txt」ファイルには、商品に関する情報が記載されており、それぞれが関連し合ったファイルです。

これらを適切に関連を持たせ、最終的にはアップロード用に「.csv」として出力させたい為、内容が横1行に吐き出されるようにしたいです。

初歩的な質問になりますが教えてください。

作業環境はWindows7にExcel2003、Access2003がインストールされていますが、そのどちらも素人程度にしか扱えない状況です。
「.txt」の主情報(商品マスタ)は十万行以上になります。

金銭的なバックアップは見込めませんが、無料ソフトの導入などは問題ないです。
また、私以上に素人がこの処理をするかもしれない場合、どのような方法でアップロード用の情報にするのが良いでしょうか?

※添付画像が削除されました。

A 回答 (37件中1~10件)

テキストファイルの既存テーブルへのインポートは、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://oshiete.goo.ne.jp/qa/8775302.html
  楽しみですね

> 2ヶ月もの間、大変親身にご相談にのって頂いてありがとうございました。
  2か月間アッという間でした。
  この間一貫せず バラバラの説明によく付いてきてくれました。

>まだまだAccessはわからない事だらけですが、そろそろ自分の力で解決できるように努力するべく頑張る頃合いかもしれません。
  2か月前はVBAを避けておられましたが、
  EXCELは仕組みを自分で考え、自分で使うのが一般的ですが、
  ACCESSは私創る人、あなた使う人といった感じですね
    • good
    • 0
この回答へのお礼

お返事が遅くなりまして申し訳ございません。
回答ありがとうございます。

早速ですが

> 1.3. ⇒【その他の項目を初期状態にする】
その他の…とは、商品番号の他の全ての項目の事でしょうか?
初期状態にするとは、データ型の事でしょうか?
よく分からなかった為、商品番号を主キーにした以外はそのままの状態にしました。

> 1.4.テーブルルックアップを外す
すみません、ルックアップしている項目がどのテーブルにも存在していませんでした。
いつぞやルックアップの設定方法を教えて頂いた事は覚えているのですが…
覚えていらっしゃったら、どの項目が何をルックアップしていたのか教えて頂けますでしょうか?

こんな状態ですが、VBAを差し替え後、商品マスタをインポートしてみたところ「パラメータの入力」と小窓が出現しメーカーコードを求めてきました。


> 2か月間アッという間でした。
> この間一貫せず バラバラの説明によく付いてきてくれました。
とんでもございません。
お忙しい日も、返答するのが億劫な日もあったでしょうに、毎日お付き合い頂いて大変感謝しております。

一見初心者にはバラバラに感じる説明もありましたが、後の設定に関連していたりしたので、その時にストンと内容が頭に入り、大変分かりやすかったです。

今後も質問する事もあるかと思いますが、機会がありましたらまたお付き合い頂けると嬉しいです^^

お礼日時:2014/10/03 19:14

下記URAは、見出しの無いテキストファイルをインポートする方法らしいです。



Http://office.microsoft.com/ja-jp/access-help/HA001226310.aspx

上記URLはschema.ini に項目名、その他を別に定義することで、
項目名の無いテキストファイルをインポートする方法らしいのですが、
手順3.で詰まってしまいましたが、試す価値が有りますね。
「関連がある複数のテキストファイルの扱い方」の回答画像36

この回答への補足

回答ありがとうございます。

schema.iniを作成し、商品マスタ.txtと同じディレクトリに置けたのですが、その後どのように使用するのかわからず、現在検索中でございます。
通常通りインポートするのだとしたら、実行時エラー '2391':がでました。


明日はPCが使えない為、結果は10/1にご報告致しますね。

この質問の締め切りが10/2の為、もしかしたら新規に質問を立てるかもしれません。
もし、気分が乗るようでしたらまたお付き合いください^^

補足日時:2014/09/29 19:00
    • good
    • 0
この回答へのお礼

こんばんは。

schema.iniを作成してインポートすると実行時エラー '2391':がでた為、調べたところインポート定義が必要という事で、テキストファイルはカンマ区切りのまま、VBAの第二引数にインポート定義を指定したところ、インポートできるようになりました。

他にエラーが出ているテーブルもある為、それらもインポート定義を第二引数に指定してうまくいくかどうか検証中です。

本日はここまでしか進まず、質問の締め切りになってしまう為に別の質問を立てました。
質問No.8775302 http://okwave.jp/qa/q8775302.html

2ヶ月もの間、大変親身にご相談にのって頂いてありがとうございました。
まだまだAccessはわからない事だらけですが、そろそろ自分の力で解決できるように努力するべく頑張る頃合いかもしれません。

もし、気分が乗るようでしたらまたお付き合いください^^

お礼日時:2014/10/01 19:03

当初の目的は


http://oshiete.goo.ne.jp/qa/8733543.html
で解決しましたね、でもまだ閉まっていません、ベストアンサー完了で閉まります。
多分ベストアンサーを選んでもう一度ベストアンサーにするで完了します。

ACCESSは色々制約があり、大変だなと感じられたことと思いますが。
その分不都合回避の仕組みが組み込んであると思って下さい。

商品マスタのフィールドの数が38、単票形式なら問題ないのですが、レコードの送りが、クリックで1レコードしか移動できません。

帳票形式ならスクロールが効きますが、1レコード1行とし、1画面に多くのレコードを表示する仕掛けです。
添付画面は、フォームヘッダーの見出し項目、詳細にレコードの1部分、フォームフッターに残りのフィールドを配置しました。
これで、左端のレコードセレクタに右向き三角カレントrコードでこの残りの項目がフォームフッターに表現されます。

テーブル、フォームにはいろいろなプロパティーがあります。興味おありですか
「関連がある複数のテキストファイルの扱い方」の回答画像35

この回答への補足

こんばんは。

今日は台風の影響で雨風が強かったですが、明日は全国的に秋晴れのようですね!
朝晩は冷えるようなので、ご自愛下さい。


さて、本日は仕事が少し山になっていたものであまりAccessにさわれておりません。

> ACCESSは色々制約があり、大変だなと感じられたことと思いますが。
制約がある分ファイルも必要最低限の内容となり、扱いやすくもなるようですね。
扱いやすくする為に、最初の段階で元データを理解し、整理する事が肝心のようですが、それが1番難しいです…

> 商品マスタのフィールドの数が38、単票形式なら問題ないのですが、レコードの送りが、クリックで1レコードしか移動できません。
商品マスタに追加するような場合は見やすくて良いですね。

> 帳票形式ならスクロールが効きますが、1レコード1行とし、1画面に多くのレコードを表示する仕掛けです。
今回は登録する事はないので帳票形式が最適のようですね。
添付画像がその例という事ですね。
質問した当初はAccessでこんな事ができると思っていなかったものですから、大変おどろきました。


プロパティーですか…
目の前の処理に追われじっくり触ってはいないのですが、例えば住所入力支援などの事でしょうか?
住所入力支援やリストボックスからの選択など、便利で間違いがグッと減る仕組みは今後機会があれば取り入れたいと思います。

補足日時:2014/09/25 19:23
    • good
    • 0

お疲れ様です、もう意地ですね



先ず、商品マスタのリレーションを外して、商品番号の主キーを外してチェックして下さい。

この回答への補足

> お疲れ様です、もう意地ですね
意地ですね^^;
なんだか、とんでもない事に巻き込んでしまって申し訳ございません。


> 先ず、商品マスタのリレーションを外して、商品番号の主キーを外してチェックして下さい。
・リレーションを外す
・主キーを外す
・あるフィールドの最大3つの短文の区切り文字をカンマからアンダーバーへ変更
・タブ区切りをカンマ区切りへ変更

以上4点を変更しチェックしたところ、やはり前回と同じエラーテーブルが作成されます。

インポートされた内容を確認しました。
補足に書いた1~4について
1.解消されました。
2.やはりダブルクォーテーション以降のHTMLがインポートされないまま
3.レコードによりインポートされるもの、されないものがあります。(実質、使用しないフィールドなので問題はありません)
4.解消されました。

そして、手動(ウィザード)でインポートした場合ですが、1~4についての現象は全て解消されました!
何が違うのか私では分かりかねますが…


↓別の質問に載せたリレーションの画像ですが、そろそろQの締め切りの為、画像削除しようかと思っております。
http://okwave.jp/qa/q8733543.html

補足日時:2014/09/24 18:55
    • good
    • 0

>気づいたらすっかり秋ですね。


>関東圏では長袖の方もチラホラと目立つようになってきました。
関東圏ですか、自分は大阪から倉敷の田園地帯に移って3年が過ぎました。
朝夕の暑さがゆるみ、稲穂が取り入れ前の美しい季節になりました。

>説明テーブルで止まってしまう為、VBAから説明のインポートコードを省いてのインポート結果です。
 リレーションで【説明】は【商品マスタ】の下位ですね、
 上位が解決しなければインポートできません。
 先に追加した【商品マスタインポート】は【商品マスタ】のみを対象にしています。
 これには テーブルの初期化も組み込んでいるので
 テキストファイル修正後⇒インポートチェックが繰り返し出来ます。
 先ず、行見出しと1行だけのデータの2行でインポートチェックして行見出し確定してから
 テキストファイルの増やしてチェックで不都合な行の修正、除去を繰り返して
 全商品マスタのテキストファイルのインポートが終了してから次へ進みます。

>説明テーブルで止まってしまう原因として考えられるのは、配番に主キーが設定されており、インデックスでは「はい(重複なし)」となっておりますが、実際のテキストデータを見ると、重複があるからではないかと思います。
 その通りです。それに【商品マスタ】に上位のレコードがあることです。

>配番に主キーが設定されており、インデックスでは「はい(重複なし)」となっておりますが、実際のテキストデータを見ると、重複があるからではないかと思います。
 主キー設定をはずし、インデックスでは「はい(重複あり)」
 主キーを外すにはテーブルのデザインモードで主キーのフィールドをクリック後、主キーツールをクリック
 
>▼カテゴリ_インポート エラー
>エラー│フィールド│行
>データ型の変換エラー│カテゴリカナ名│174

>▼カテゴリ中継_インポート エラー
>エラー│フィールド│行
>データ型の変換エラー│小分類コード│6894

>▼商品マスタ_インポート エラー
>エラー│フィールド│行
>解析不能なレコード│空欄│2

>▼名前の自動修正保存エラー
>オブジェクト名│オブジェクトの種類│エラーの原因│時刻
>商品マスタ│テーブル│オブジェクトを保存できませんでした│2014/09/22 15:03:17
 フィールド名(商品コード⇒商品番号)変更時に発生したものと思います。
  リレーションシップを外してからでは変更できますか

>また、「商品マスタ_インポート エラー」の原因は正にフィールドの空欄ではないかと、只今検索中です。
>元々タブ区切りだったデータを正規表現でカンマ区切りに変更しました。

>その際に、データが入っていないフィールドはカンマが続けて,,と表示されています。
 これはフィールド内が空白という意味で、主キーフィールドと値要求のフィールド以外は不都合ありません。

>その他のエラーも、種類を検索して値の確認をしてみます。
 上位テーブルの解決が先ですが、リレーションを外せばチェック出来ます。 

 今こちらは添付のようになっています。
 【商品マスタ】の左は上より【HOGE】、【メーカー】、【ブランド】です。
 途中追加した【仕様】、【仕様明細】は除去しました。
「関連がある複数のテキストファイルの扱い方」の回答画像33

この回答への補足

お返事が遅くなり申し訳ございません。
回答ありがとうございます。

> 上位が解決しなければインポートできません。
そうですね、まず商品マスタの問題を解決しなくてはならないですね。
一応、説明テーブルは主キーを外しました。

> 先ず、行見出しと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つの短文が入っているのですが、それらをカンマで区切っていました。
タブ区切りからカンマ区切りに変更した為、ずれてしまったようです。

補足日時:2014/09/24 14:36
    • good
    • 0

>フォームの「商品登録」「説明登録」「説明サブ」の方は商品コードのままの名称ですが、そのままでよいでしょうか。


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

この回答への補足

こんばんは。

気づいたらすっかり秋ですね。
関東圏では長袖の方もチラホラと目立つようになってきました。

さて、全テキスト・全テーブルの値を確認後、再度インポートした結果をご報告します。

説明テーブルで止まってしまう為、VBAから説明のインポートコードを省いてのインポート結果です。
説明テーブルで止まってしまう原因として考えられるのは、配番に主キーが設定されており、インデックスでは「はい(重複なし)」となっておりますが、実際のテキストデータを見ると、重複があるからではないかと思います。


▼カテゴリ_インポート エラー
エラー│フィールド│行
データ型の変換エラー│カテゴリカナ名│174

▼カテゴリ中継_インポート エラー
エラー│フィールド│行
データ型の変換エラー│小分類コード│6894

▼商品マスタ_インポート エラー
エラー│フィールド│行
解析不能なレコード│空欄│2

▼名前の自動修正保存エラー
オブジェクト名│オブジェクトの種類│エラーの原因│時刻
商品マスタ│テーブル│オブジェクトを保存できませんでした│2014/09/22 15:03:17


また、「商品マスタ_インポート エラー」の原因は正にフィールドの空欄ではないかと、只今検索中です。
元々タブ区切りだったデータを正規表現でカンマ区切りに変更しました。
その際に、データが入っていないフィールドはカンマが続けて,,と表示されています。

その他のエラーも、種類を検索して値の確認をしてみます。

補足日時:2014/09/22 19:09
    • good
    • 0

次の一つでも違反している行が存在するときは全ての行がインポートできません


1.テキストファイルの見出し項目とデータの列数が一致
2.テキストファイルの見出し項目とデータの列型式(文字列or数値)が一致
3.テキストファイルの見出し項目の全てがテーブルにフィールドが存在する
4.テキストファイルとフィールドのデータ型が一致している。

フィールドの属性に違反する行ははじかれ、他はインポートされます
・主キー、インデックスで(重複なし)になっている
・値要求
    • good
    • 0

解答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
---------------------------------------
    • good
    • 0

>商品マスタ_インポート エラー(解析不能なレコード)


 これはテーブルとして追加されていますね、このテーブル除去してください。

>説明_インポート エラー(フィールドの切り捨て:商品コード)
 商品コード(商品番号)は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://oshiete.goo.ne.jp/qa/123179.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から始まる場合もあります。ただ先方によると、ここは文字列として扱うという事で、テキスト型としてあります。

この回答への補足

回答ありがとうございます。

> 商品コード(商品番号)は6桁ですよね、区切り記号が抜けて次のフィールドと一つになっている
いいえ、商品コードは半角英数8桁です。
エラーテーブルを削除してしまった為、フィールドが合体していたか確認できませんでした…

> テーブルの商品コードを商品番号に統一した時に起きたものでしょうか
正しくは商品コードの為、全てのテーブルは商品コードのまま変更しておりませんでした。
一端、商品番号へ修正してみます。
フォームの「商品登録」「説明登録」「説明サブ」の方は商品コードのままの名称ですが、そのままでよいでしょうか。

> 次のコードの両端を除いたものをコピペして、メニューを再起動し
両端がどの部分の事か分からなかった為、コード全てをコピペして【商品マスタインポート】を実行した結果

▼商品マスタ_インポート エラー
エラー│フィールド│行
解析不能なレコード│空欄│2

▼名前の自動修正保存エラー
オブジェクト名│オブジェクトの種類│エラーの原因│時刻
商品マスタ│テーブル│オブジェクトを保存できませんでした│2014/09/22 10:33:45

> 次の一つでも違反している行が存在するときは全ての行がインポートできません
なるほど、確認してみます。

確認、修正後に再度インポート結果をご報告しますね!

補足日時:2014/09/22 13:37
    • good
    • 0

>> 両者の違いはレコード件数です。


>申し訳ないのですが、なぜレコード件数が違うのか分からないです。
>同じものなのにレコード件数が違う???など考えているのですが、どこを見ればよ
いのでしょうか。
 メインフォームに複数のサブフォームを並列に並べることが出来ます。
 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型、日付等
 
「関連がある複数のテキストファイルの扱い方」の回答画像28

この回答への補足

回答ありがとうございます。

> ,と. スペースが入っている等、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から始まる場合もあります。ただ先方によると、ここは文字列として扱うという事で、テキスト型としてあります。

補足日時:2014/09/20 14:59
    • good
    • 0
1  2  3  4 次の回答→

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