
Accessプロたちへ
(質問)
1フィールドにスペースで区切られた文字が4つ存在します。
この1フィールドをスペース区切りで4つに分割する方法を教えて下さい。
(質問詳細)
1)dir /s の出力結果のファイルがあります。
2)そのデータをスペース区切りなしでインポートします。
3)2フィール目が、以下のようになります。
2008/12/12 12:29 221 aaa.txt
2008/12/14 13:56 235 bbb.txt
2008/12/11 12:30 151 ccc.txt
2008/12/11 12:30 151 ddd.txt
2008/12/11 12:30 151 eee.txt
2008/12/11 12:30 151 fff.txt
2008/12/11 12:30 151 ggg.txt
これをアクセスで取り込んで、以下のようにしたいのです。
フィールド1 フィールド2 フィールド3 フィールド4
2008/12/12 12:29 221 aaa.txt
2行目以降も同様です。
尚、上記のことを教えてもらって、最終的に、やりたいことは、
2008/12/11のファイルの合計サイズを導きだすことです。
上記の方法でなくても特定の日のファイルの合計サイズを
今のままで出すことができるのであれば、そちらで教えていただいても
構いません。
よろしくお願いします。
因みに、
最初からスペース区切りでインポートすればよいではないかと思われるかもしれませんが、それができない状態なのです。
環境:Access2003
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
標準モジュールに以下のコードを作成します。
Option Explicit
Dim RegExp
Function Part(ByVal Data, ByVal Idx As Long)
Dim Ary
If IsEmpty(RegExp) Then
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.Global = True
RegExp.Pattern = "\s+"
End If
Ary = Split(RegExp.Replace(Data, vbTab), vbTab)
Select Case Idx
Case 0, 1: Part = CDate(Ary(Idx))
Case 2: Part = CLng(Ary(2))
Case 3: Part = Ary(3)
End Select
End Function
SQLは以下の通り。
SELECT Part(フィールド,0) AS 日付,Part(フィールド,1) AS 時刻,
Part(フィールド,2) AS サイズ,Part(フィールド,3) AS 名前 FROM ~
区切り文字がタブだったり、各行の文字数が不特定な場合でも使用
できます。また、VBのSplitと異なり、連続した区切り文字は1文字
として扱うので、区切り文字数を気にする必要もありません。
尚、日付と時刻は日付型、サイズは長整数、名前は文字型です。
但し、項目の置かれる文字位置が絶対である場合はMidを使う方が
高速です。
No.2
- 回答日時:
あ!、CIntじゃ桁あふれするでしょうね CLngですね
でも、CLngでも2GBくらいまでしか出せません
巨大ファイルを扱うなら数値変換の型は考えたほうが良いでしょうね
追記
DIR /Sでは<DIR>以外にもルート名や余白もあるのでこれらを除く方法を考えないと数値変換でエラーを起こすでしょう
そのへんの考慮も
No.1
- 回答日時:
別にAccessのプロじゃなくても分かると思いますが・・・
それに丸投げは禁止されてますよ
なのでヒントだけ
Dirコマンドは固定長になっているはずなので
Mid関数で切れば出来るでしょう
SELECT Mid(LIST_REC,1,10) AS 作成日,
Mid(LIST_REC,13,5) AS 作成時刻,
CInt(Mid(LIST_REC,19,17)) AS サイズ,
Mid(LIST_REC,37) AS ファイル名
FROM DIR_LIST
WHERE Mid(LIST_REC,5,1) = "/"
AND Mid(LIST_REC,22,5) <> "DIR"
後は作成日を選択するかグループ化してSumなりCountで加工してね
尚、Accessで検証してませんのでSQLにエラーがあるかもしれません
早速の回答ありがとうございます。
丸投げ禁止だったんですね。
ルール違反でした。以後、気をつけます。
素人なので、多分時間かかると思いますが
試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- その他(プログラミング・Web制作) テキストデータ変換(プログラミング、linux、python) 8 2023/08/08 16:39
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
このQ&Aを見た人はこんなQ&Aも見ています
-
特定の文字列で列を区切るには?
その他(データベース)
-
アクセスのクエリでSplit関数は使えないのですか
Access(アクセス)
-
ACCESS 一つのフィールドに複数レコードの値をセットしたい
その他(データベース)
-
-
4
Access で 特定の文字の個数をしりたい
Access(アクセス)
-
5
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
-
6
ACCESS クエリで、グループ化したものをカウントしたい
その他(データベース)
-
7
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
8
ACCESSのクエリで空白以降を別のフィールドに移動
その他(データベース)
-
9
MS-Accessのレコード内のフィールドを分割し、複数のレコードにする方法について教えてください。
Access(アクセス)
-
10
アクセスで教えてください。 縦持ちデータを横持ちデータに変更したいです。 項目数が多くてクロス集計で
Access(アクセス)
-
11
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
12
Accessのテーブルを既存のExcelファイルへエクスポートしたいんですが
Access(アクセス)
-
13
Access クエリで連結する文字の間に空白を入力
その他(データベース)
-
14
access 複数フィールドを1フィールドに
Access(アクセス)
-
15
ACCESSでひとつのフィールドに内容をまとめる
Access(アクセス)
-
16
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
17
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
18
access テーブル作成クエリでテーブル作成すると、データの数字が勝手に変わる こんにちは クエリ
Access(アクセス)
-
19
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
奇数・偶数ページごとに差し込...
-
クエリで割り算する方法を教え...
-
「Access2007」でレポートが作...
-
ACCESSで条件によってフォーム...
-
カレントフィールドの、青い枠...
-
ACCESS2000 で困っています・・・
-
Access VBAでCSVファイルをイン...
-
ワードファイルの文字数制限ロ...
-
Accessの日本語フィールド名
-
ACCESSで 文字と文字の間の余...
-
sqlserverにはグループ集計のfi...
-
Accessの使い方に関してご質問...
-
ACCESS2007 ピボットテーブル...
-
Acsess アクセス のクエリで...
-
word 2013 のラベル印刷で設定...
-
英数字のチェックをしたい ACC...
-
ジャッカルのデラクーは何グラ...
-
Access InStr関数 AかBが入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷での全角表示について...
-
エクセルにおける「フィールド...
-
クエリで割り算する方法を教え...
-
エクセルデータをワードで差し...
-
Accessのハイパーリンクをクリ...
-
ACCESSのデータに自動で半角ス...
-
カレントフィールドの、青い枠...
-
フィールドの更新がない
-
ACCESS 重複データを1...
-
sqlserverにはグループ集計のfi...
-
ACCESSで条件によってフォーム...
-
「Access2007」でレポートが作...
-
Word差し込み印刷のハイフン(...
-
クエリーで、全角混じりデータ...
-
奇数・偶数ページごとに差し込...
-
Acsess アクセス のクエリで...
-
実行時エラー '3464': 抽出条件...
-
アクセスの操作について
-
アクセスのクエリでパラメータ...
-
Accessの日本語フィールド名
おすすめ情報