
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Access インポート
Access(アクセス)
-
テーブルリンク エクセルの4行目を先頭行にしたい
Access(アクセス)
-
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
-
4
「#エラー」の回避
Access(アクセス)
-
5
Accessクエリで特定の行を削除したい
Access(アクセス)
-
6
accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー
Access(アクセス)
-
7
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
8
Accessにインポートしたら並び順が変わっちゃった
Access(アクセス)
-
9
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
10
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
-
11
ACCESS で 項目名を出力せずにエクスポートしたい
その他(データベース)
-
12
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
13
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
14
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
15
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
16
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
-
17
パラメータが少なすぎます。1を指定して下さい。""
Excel(エクセル)
-
18
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
19
ACCESS 複数のフォームから同一テーブル参照
Access(アクセス)
-
20
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
他ファイルのテーブルの情報を...
-
データを削除しても表領域の使...
-
CLOB型へのINSERT
-
ACCESS 複数テーブル・複数フィ...
-
Viewにインデックスは張れ...
-
datapumpの実行方法について
-
列が255以上のCSVファイルをAcc...
-
postgreSQLのint型は桁数指定が...
-
異なるスキーマからデータを抽...
-
スキーマの削除、スキーマオブ...
-
Data Pump で大量データインポ...
-
同じSELECT文同士でのデ...
-
OracleTextの索引再構築について
-
カラムの存在チェック
-
シノニムってエイリアスのエイ...
-
ActiveX DLLでのオラクルのトラ...
-
他の処理でselectさせないよう...
-
テーブルのSTORAGE句のサイズ設定
-
RDBのテーブル種類の違い
-
SQLでスキーマ名(所有者名)の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルからアクセスにインポ...
-
ACCESS テーブルに2行目から取...
-
他ファイルのテーブルの情報を...
-
C#でaccdbファイルのテーブルの...
-
(ACCESS)複数mdbからのデータ...
-
アクセスマクロで、csv データ...
-
データ読込時のタイムアウト
-
mdb→csvへのエクスポートについて
-
Access2019でフォームから入力...
-
JSPでデータベース作成
-
テーブルのリンク(ACCESS)
-
VBAで データベースにデータを...
-
シーケンシャルアクセスについて
-
VBでCSVデータをMDB
-
ACCESSのリンクについて
-
Accessでボタンを押したらエク...
-
Accessの接続先をSQLサーバ...
-
jspのプログラムについて
-
アクセス初心者に注意点を教え...
-
画面から入力した値がDBに登録...
おすすめ情報