ACCESS VBAにてCSVファイルを並び順を変えずにインポートするにはどうしたらよいでしょうか?。
ACCESSはリレーショナルデータベースなので、インポート順が保障されていませんが、私はそれでは困るのです。
困ったプログラムはこんな感じです。
DoCmd.TransferText acImportDelim, , "付け足しCSV", msg, True
Strsokuteibi = "" & rs.Fields(0).Name & ""
Strsentougyou = rs.Fields(0).Name
SQL = "INSERT INTO CSVまとめ ( 計測日, グループ, サイト名, サイトURL, 検索語, Yahoo, [Yahoo URL], Google, [Google URL] )" & _
"SELECT """ & Strsokuteibi & """ AS 日付, 付け足しCSV.[" & Strsentougyou & "], " & _
"付け足しCSV.F2, 付け足しCSV.F3, 付け足しCSV.F4, 付け足しCSV.F5, 付け足しCSV.F6, 付け足しCSV.F7, 付け足しCSV.F8 " & _
"FROM 付け足しCSV;"
Set Qdf = CurrentDb.CreateQueryDef("CSV追加Q", SQL)
Set Qdf = Nothing
DoCmd.OpenQuery "CSV追加Q"
DoCmd.Close acQuery, "CSV追加Q"
上記のような感じで。
ええと。CSVファイルの先頭行というかフィールド名はがっつり使います。
なので、オートナンバー行を作り、そこへインポートするにも、ええと、CSVファイルのフィールド名は変わっていくので、適合しないのですね。さまざまなフィールド名があるのです。
柔軟にしないと?。
はたして、どうしたらよいのでしょうか?。
馬鹿な私にもわかるようにわかりやすくお願いします。
また、土日は環境が無いので、あまりお返事できません。
ごめんなさい。
No.5ベストアンサー
- 回答日時:
このような特殊な案件では、VBAでしこしこ作るよりありませんね。
CSVの1行目を読み込んで、テーブルをクリエイトする。
このとき、オートナンバーも付ける。
2行目以降を1行ずつ読み込んでテーブルに書き込む。
LineInputで1行読んでSplit関数で配列にし、
その配列(添え字)をテーブルのFields(添え字)に書き込む。
この仕掛けを1つ作れば、他のCSVにも適用できるかと。
わぁ。なんだかそれは良さそうです。
しかし、私はすごく馬鹿なのでぜひともサンプルコードを書いていただければと思います。
今は環境がないのでサンプルコードが有るにせよ無いにせよお返事は月曜か火曜になります。
ありがとうございました。
No.4
- 回答日時:
アクセスにインポートしてどの様に使うつもりですか?
フィールド名がバラバラならプログラムも何も作れませんし。
どうみても、エクセルを使うべき案件の様にしか思えません。
よろずやkinchan様、夜分遅くのご回答ありがとうございます。
書いて有るSQLステートメントを読むと分かる様にフィールド名を取得してこれをデータとして使っています。
この試みはお解りの様に成功しています。
アクセスDBにするのはお客様のご要望ですし。
Excelは考えられません。
読めない様な汚いコードでお目汚しすみません。
よろずやkinchan様お返事ありがとうございます。
CREATEと言うかインポートすればテーブルできるので、CREATEじゃないのですね。
インポートしたテーブルが既に順番がぐちゃぐちゃなのです。
ええと、言葉足らずですみません。
ちょっと補足します。
No.2
- 回答日時:
No.2です。
複数のCSVファイルをって訳じゃないようですね。
検索してみた中には
>mdbをAccess2010で使用すると
みたいな記事もあります。
もしmdbで作成されているなら新しいaccdbに切り替えた方が安定するのかも知れない。
ただ今現在accdbであるのなら・・・Accessは良くわかりません。
てっきり複数のCSVファイルを順次読み込む際の順番かと思ってましたし。
めぐみん様、お忙しいところいろいろ考えてくれてありがとうm(_ _)m。
アクセスだけでなく、リレーショナルデータベースではオラクルでも勝手に順番入れ替わります。
安定も何もDBならばむつかしいかと………。
一CSVファイル内です。
よろしくお願いします。
No.1
- 回答日時:
ハッキリ言います。
Accessはよく知りません。>CSVファイルを並び順を変えずに
そもそもどんな順番に並んでいるのが正解と思ってますか?
名前順とか何かあるのでしょうけど、最初にそのリストを作成し順次吐き出すループを作るというのではダメなのでしょうか?
Excelなら.NET FrameworkのSystem.Collections.SortedListにファイル名を放り込んでいけば、勝手に昇順に並び変わります。
あとは頭からIndexを使って吐き出せば、一応昇順に並んだファイルの処理が可能と言えると思います。
あ”、でも単にファイル名だけならSystem.Collections.ArrayListでファイル名を追加していって終わったらSortメソッドで並び換えると
言うのもありかな。
めぐみん様お返事ありがとう。
CSVはCSVの最初からの順番どおりに入れたいです。
何かでソートとかしたくないですし、主キーとなるようなものもありません。
CSVのファイルそのままを最初から順番どおりに入れたいです。
しかし、普通にインポートすると、ACCESSの自由に順番が入れ替わってしまうのです。
困りました。
ちなみに、マクロではなく、VBAでお願いします、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- XML PHP.laravelについて 1 2023/07/06 15:26
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
Accessにインポートしたら並び順が変わっちゃった
Access(アクセス)
-
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
-
CSVファイルのエクスポートでソートしたい
Visual Basic(VBA)
-
-
4
Access インポート
Access(アクセス)
-
5
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
6
空白をそのままインポートする方法について
その他(データベース)
-
7
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
8
「パラメータが少なすぎます。3を指定してください。」って???
Access(アクセス)
-
9
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
10
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
11
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
12
新規レコード行を非表示にしたい
Access(アクセス)
-
13
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
14
ACCESS VBAでインポート定義の場所
Access(アクセス)
-
15
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
16
エクセルからアクセスにインポートすると、エラーが出てしまいます。原因を教えていただけませんか。
Access(アクセス)
-
17
「#エラー」の回避
Access(アクセス)
-
18
アクセスでエラー このフィールドに入力した値が正しくありません
その他(データベース)
-
19
Accessのテーブルからcsv出力する際に一部のフィールドを除いて出力したい
Access(アクセス)
-
20
実行時エラー3131 FROM 句の構文エラーです について
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
INSERT INTO ステートメントに...
-
SQLServer2005のSQL文での別名...
-
Accessのフィールド数が255しか...
-
ACCESSでの改行コード
-
ACCESSでテーブルのチェックを...
-
Access 昇順・降順で並び替え...
-
【Access】フォームで自動計算...
-
通貨型で\\0の時、何も表示しな...
-
Access:リンクテーブルマネー...
-
Accessで、固定アルファベット+...
-
アクセス エラーを数値「0」に...
-
ACCESS レーダーチャートのデー...
-
ACCESS2000「定義されているフ...
-
accessで重複を防ぎたい
-
SQLで特定の文字を含むものを削除
-
Accessで別途保存の画像ファイ...
-
ACCESSで400以上のフィールドが...
-
ACCESS VBAにてCSV...
-
Access の非連結テキストボック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INSERT INTO ステートメントに...
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSでの改行コード
-
アクセス エラーを数値「0」に...
-
SQLServer2005のSQL文での別名...
-
accessのレポートで元になるテ...
-
ACCESSで400以上のフィールドが...
-
accessで重複を防ぎたい
-
Access 昇順・降順で並び替え...
-
Accessで、固定アルファベット+...
-
【Access】フォームで自動計算...
-
ExcelのデータをコピーでACCESS...
-
ACCESSでテーブルのチェックを...
-
ACCESS2000「定義されているフ...
-
ACCESS検索★ある文字を複数のフ...
-
ACCESS VBAにてCSV...
-
フィールド数の多すぎる・フィ...
-
ACCESSで和暦を西暦に・・・
-
アクセス メモ型 255文字...
おすすめ情報
CSVファイルは大量に有ります。
そのフィールド名はファイル事に違います。
オートナンバーをつけたテーブルを用意しようにも、フィールド名がそれぞれ違うので入りません。
そしていちCSVファイルだけでも、インポートすれば並び順がバラバラです。