teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

解決

2018/03/20 11:25

投稿

Kiri_Tanpo
Kiri_Tanpo

スコア13

title CHANGED
File without changes
body CHANGED
@@ -84,4 +84,11 @@
84
84
  DB:OracleExpressEdition
85
85
 
86
86
  上記リネーム処理を呼び出す条件を間違えていた時には、上記のリネーム処理が動いてしまっていることを確認しているので、何か原因があるのだろうとは思うのですが、よろしくお願いします。
87
- また、リネーム処理を呼び出せていることは、確認済みです。
87
+ また、リネーム処理を呼び出せていることは、確認済みです。
88
+
89
+
90
+ お二方のご指摘の通り、
91
+ リネーム処理の前でCSVファイルを開いたまま、Closeしていない変数がありました。
92
+ リネーム処理を呼び出す前にCloseメソッドで閉じることで動作確認できました。
93
+ 迅速な回答ありがとうございました。
94
+ ベストアンサーは時間の早かったほうということで、ご了承ください。

2

ソースの追加

2018/03/20 11:25

投稿

Kiri_Tanpo
Kiri_Tanpo

スコア13

title CHANGED
File without changes
body CHANGED
@@ -43,7 +43,39 @@
43
43
 
44
44
  End Sub
45
45
  ```
46
+ 追記
47
+ ディレクトリからファイルを拾って、設定ファイルを元にSQL文を作成。
48
+ SQLを実行し、ファイル単位でコミット、ロールバックを行う。
49
+ CSVファイルを他でクローズするようにとのことだったので、編集かけてみましたが、
50
+ エラーは変わりませんでした。編集にミスがあればお願いします。
46
51
 
52
+ ```
53
+ If END_CODE = 0 Then
54
+ If lngMatchFlag = 1 Then
55
+ '--------------------------------------------------------'
56
+ 'INSERT成功処理
57
+ '--------------------------------------------------------'
58
+ strFilePath = objDataFile.Path  ← 追加
59
+
60
+ 'オブジェクトの破棄
61
+ Set objDataFile = Nothing ← 追加
62
+ Call OkInsert(strFilePath)
63
+ End If
64
+ Else
65
+ If lngMatchFlag = 1 Then
66
+ '--------------------------------------------------------'
67
+ 'INSERT失敗処理
68
+ '--------------------------------------------------------'
69
+ strFilePath = objDataFile.Path ← 追加
70
+
71
+ 'オブジェクトの破棄
72
+ Set objDataFile = Nothing    ← 追加
73
+
74
+ Call NgInsert(strFilePath)
75
+ End If
76
+ End If
77
+ ```
78
+
47
79
  ### 試したこと
48
80
  対象のCSVファイルのプロパティの読み取り専用を解除。
49
81
 

1

情報不足

2018/03/20 09:59

投稿

Kiri_Tanpo
Kiri_Tanpo

スコア13

title CHANGED
File without changes
body CHANGED
@@ -24,7 +24,6 @@
24
24
  Dim resetFileName 'リネームファイル名
25
25
  Dim strFileName
26
26
 
27
-
28
27
 
29
28
  strFileName = Mid(strDataFilePath, InStrRev(strDataFilePath,"\") + 1)
30
29
 
@@ -36,21 +35,21 @@
36
35
  Set objRenameFSO = CreateObject("Scripting.FileSystemObject")
37
36
  Set objRenameFile = objRenameFSO.GetFile(strDataFilePath)
38
37
 
39
- objRenameFile.Name = resetFileName
38
+ objRenameFile.Name = resetFileName    ←ここでエラーが発生しています。
40
39
 
41
40
  'オブジェクトの破棄
42
41
  Set objRenameFSO = Nothing
43
42
  Set objRenameFile = Nothing
44
43
 
45
- 'On Error GoTo 0
46
-
47
44
  End Sub
48
45
  ```
49
46
 
50
47
  ### 試したこと
48
+ 対象のCSVファイルのプロパティの読み取り専用を解除。
51
49
 
52
- ここに問題に対して試したことを記載してください。
53
-
54
50
  ### 補足情報(FW/ツールのバージョンなど)
51
+ OS:Windows7
52
+ DB:OracleExpressEdition
55
53
 
54
+ 上記リネーム処理を呼び出す条件を間違えていた時には、上記のリネーム処理が動いてしまっていることを確認しているので、何か原因があるのだろうとは思うのですが、よろしくお願いします。
56
- ここにより詳細な情報記載しください。
55
+ また、リネーム処理呼び出せていることは、確認済みです