Access2013で、
指定の場所に置いてあるCSVファイルに対して、
「リンクテーブルを作成してソースデータにリンクする」設定にてテーブルを作成し、
このCSVファイルが更新されても最新の状態にてレポートを出力できるようにしています。
しかしこのCSVデータが作成される仕様により、1行目に余計な文字列、2行目に項目名、3行目以降にデータが入っているため、毎回CSVデータの1行目を削除する手作業が発生しています。
2行目以降をリンクするようにするとか、テーブルの3行目以降を取り出すクエリとか方法はありませんでしょうか?
No.2ベストアンサー
- 回答日時:
>2行目以降をリンクするようにするとか、
>テーブルの3行目以降を取り出すクエリとか方法はありませんでしょうか?
D:\ナントカ\コントカ\オリジナル.csv
に余計な一行があったとして下記のコードを標準モジュールに作成し
Sub LineCut1()
Dim fSo As Object
Dim buf As Variant
Dim f As Object
Set fSo = CreateObject("Scripting.FileSystemObject")
With fSo.GetFile("D:\ナントカ\コントカ\オリジナル.csv").OpenAsTextStream
.SkipLine
buf = .readall
.Close
End With
Set f = fSo.OpenTextFile("D:\ナントカ\コントカ\オリジナル_改.csv", 2, True)
f.Write buf
f.Close
End Sub
出来た"D:\ナントカ\コントカ\オリジナル_改.csv"をリンクテーブルとさせればよいのでは?
オリジナル.csv が更新される都度実行する必要がありますが
>2行目以降をリンクするようにするとか、
CSVのようなテキストファイルでは無いかと。
>テーブルの3行目以降を取り出すクエリとか方法はありませんでしょうか?
一旦取り込んでからだとデータ型の変更などが必要になりそうなので
厄介です。
オリジナル.csv の使われ方がイマイチ不明なのですが
上記のSub LineCut1() を、 Function LineCut1() に改名して
autoexec マクロに
プロシージャの実行に、LineCut1()
としても良いかもですね。
No.1
- 回答日時:
>>2行目以降をリンクするようにするとか、テーブルの3行目以降を取り出すクエリとか方法はありませんでしょうか?
Accessのことはほとんど忘れたので、何とも言えませんが、現在の取り込みのプログラム見ないと何とも言えません。
容易に考えるなら、ループ処理かけて取り込む。処理だったりするなら、1回目のループ飛ばせばいい。
とかなんですが、現状の構成が分からないとなんとも。
>>毎回CSVデータの1行目を削除する手作業が発生しています。
まぁ、でも、手作業が許されてるなら、わざわざ、今動いてるプログラムいじって、
「動かなくなる可能性」というリスクを背負う意味がない。
「CSVデータの一行目を削除する」という、バッチ処理でも、スクリプト作成して、実行するほうが、よっぽど楽かな。と思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) PowerQueryで行数の指定はできますか? 2 2022/08/26 11:13
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Access インポート
Access(アクセス)
-
テーブルリンク エクセルの4行目を先頭行にしたい
Access(アクセス)
-
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
-
4
エクセルのデータをアクセスにインポートしたいのですが、フィールド名として使用できないデータがあるようで・・
Access(アクセス)
-
5
アクセスにtxtファイルの指定行のみインポートしたい
PowerPoint(パワーポイント)
-
6
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
7
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
8
2つ目のレコードの値を取得するには?
Access(アクセス)
-
9
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
10
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
11
エクセルからアクセスにインポートすると、エラーが出てしまいます。原因を教えていただけませんか。
Access(アクセス)
-
12
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
13
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
14
Access サブフォームでの選択行の取得
その他(データベース)
-
15
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
16
Accessのフィールド名に半角括弧を使ってしまった
Visual Basic(VBA)
-
17
テキストファイルの特定行の削除方法
Visual Basic(VBA)
-
18
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
19
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
20
ファイルの先頭行を全て削除したい
Windows Vista・XP
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
他ファイルのテーブルの情報を...
-
VBからAccessの起動
-
エクセルからアクセスにインポ...
-
Access レコードを追加できませ...
-
シノニムってエイリアスのエイ...
-
datapumpの実行方法について
-
表領域の違うEXPORT IMPORT
-
ORA-00959: 表領域'****'は...
-
SQL*Loaderで、データを加工し...
-
AccessからExcel立ち上げ
-
データベースを作りたい
-
可変個数のデータはどう納める?
-
Viewにインデックスは張れ...
-
テーブル名を[]でくくらないと...
-
データファイル情報について
-
Oracleから見たOracleの優位性(...
-
Access インポート上限について
-
DMLロック解除待ち時間の指定は...
-
列が255以上のCSVファイルをAcc...
-
行ロックとテーブルロックについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルからアクセスにインポ...
-
ACCESS テーブルに2行目から取...
-
C#でaccdbファイルのテーブルの...
-
他ファイルのテーブルの情報を...
-
(ACCESS)複数mdbからのデータ...
-
テーブルのリンク(ACCESS)
-
アクセスマクロで、csv データ...
-
グループ単位にCSVファイル...
-
jspのプログラムについて
-
Accessでボタンを押したらエク...
-
EXCELで帳票フォームをつくりそ...
-
データ読込時のタイムアウト
-
アクセス初心者に注意点を教え...
-
Access2019でフォームから入力...
-
ACCESS 2003では、テーブルのリ...
-
vb6でaccessデータを他ファイル...
-
ACCESSとエクセルのリン...
-
csvをSQLiteに取り込むと文字化...
-
CSVデータの取り込み
-
リソースファイルとロケールに...
おすすめ情報