一覧のファイルから、
①時間の足し算を行いたい項目を抽出
②そこから時間の足し算を行いたい
のですが、①の時点で、カラムのデータ型が変わってしまいます。
そのため、②の処理にたどり着けません
データの抽出でカラム指定、あるいは時間型のまま抽出するにはどのようにすればよいのでしょうか?
以下、①の項目を抽出しようとしているコードです
Dim objADO Dim strPath strPath = "c;\csvdata\" Set objADO = CreateObject("ADODB.Connection") objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _ strPath & ";ReadOnly=0" objADO.Execute "SELECT * INTO time_master.csv " & _ " FROM master1.csv where 選択カラム = '終了';" objADO.Close Set objADO = Nothing
入力ファイル:master1.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:56,開始,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:39,開始,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC1,2019/2/6 9:18,開始,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:58,開始,2:19:53
PC2,2019/2/6 12:06,終了,0:00:44
PC2,2019/2/6 12:05,開始,0:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC2,2019/2/6 10:33,開始,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:56,開始,10:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:39,開始,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC1,2019/2/8 9:18,開始,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:58,開始,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:05,開始,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
PC2,2019/2/8 10:33,開始,1:27:49
出力ファイル(このように出したい):time_master.csv
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,0:00:05
PC1,2019/2/6 9:41,終了,0:02:23
PC1,2019/2/6 9:23,終了,0:05:08
PC2,2019/2/6 15:18,終了,2:19:53
PC2,2019/2/6 12:06,終了,0:00:44
PC2,2019/2/6 12:01,終了,1:27:49
PC1,2019/2/8 9:56,終了,1:00:05
PC1,2019/2/8 9:41,終了,1:02:23
PC1,2019/2/8 9:23,終了,1:05:08
PC2,2019/2/8 15:18,終了,2:19:53
PC2,2019/2/8 12:06,終了,1:00:44
PC2,2019/2/8 12:01,終了,1:27:49
出力ファイル(現状、こうなってしまう):time_master.csv
※上記のコードで実施したところ、このような表示がされてしまう
カラム1,日時,選択カラム,利用時間表示
PC1,2019/2/6 9:56,終了,1899/12/30 0:00:05
PC1,2019/2/6 9:41,終了,1899/12/30 0:02:23
PC1,2019/2/6 9:23,終了,1899/12/30 0:05:08
PC2,2019/2/6 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/6 12:06,終了,1899/12/30 0:00:44
PC2,2019/2/6 12:01,終了,1899/12/30 1:27:49
PC1,2019/2/8 9:56,終了,1899/12/30 1:00:05
PC1,2019/2/8 9:41,終了,1899/12/30 1:02:23
PC1,2019/2/8 9:23,終了,1899/12/30 1:05:08
PC2,2019/2/8 15:18,終了,1899/12/30 2:19:53
PC2,2019/2/8 12:06,終了,1899/12/30 1:00:44
PC2,2019/2/8 12:01,終了,1899/12/30 1:27:49
上記①の処理がうまくいった(このように出したいの通りに出力されたら)後、②の処理でこのように出したいと思っています
dateaddを使用するとできそうなのですが、
dateaddの使い方がよくわからず、このような質問となってしまいました
すいません
(①がうまくいっていないので、②にまだ進めないこともあります)
②の処理結果:出力ファイル:time_add.csv
PC1,2019/2/6,0:07:36
PC2,2019/2/6,3:48:26
PC1,2019/2/8,3:07:36
PC2,2019/2/8,4:48:26
第3カラムは上記の各の利用時間の合計
どのようなコードで記載すればよいか、
申し訳ございませんがお分かりになられる方、
よろしくお願いいたします
追記:
すいません。
記載の方法が悪くて申し訳ございません。
やろうとしていることは、
(ココカラ)
・PC別(カラム1の種類別)
・日付別(カラム2の日付別)
に、「選択カラム」が[終了]のレコードの
「利用時間表示」の値を合計して表示したい
(ココマデ)
となります
回答2件
あなたの回答
tips
プレビュー