質問編集履歴

3

本文の修正

2021/04/15 07:58

投稿

rarara_123
rarara_123

スコア11

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,6 @@
1
1
  発生している問題
2
2
 
3
3
  INSERT INTOステートメントの構文エラーを解消したいです。
4
-
5
- エラーは、Catch ex As Exceptiontran.Rollback()ThrowのThrowで出ています。
6
4
 
7
5
 
8
6
 
@@ -10,9 +8,11 @@
10
8
 
11
9
  System.Data.OleDb.OleDbException: 'INSERT INTO ステートメントの構文エラーです。'
12
10
 
11
+ ```
12
+
13
13
  この例外は、最初にこの呼び出し履歴
14
14
 
15
- ``` System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(System.Data.OleDb.OleDbHResult)
15
+ System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(System.Data.OleDb.OleDbHResult)
16
16
 
17
17
  System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(System.Data.OleDb.tagDBPARAMS, out object)
18
18
 
@@ -34,6 +34,8 @@
34
34
 
35
35
  ...
36
36
 
37
+ [呼び出し履歴が切り捨てられました] でスローされました
38
+
37
39
  ```
38
40
 
39
41
 
@@ -50,43 +52,7 @@
50
52
 
51
53
  ```
52
54
 
53
- Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
55
+ Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
54
-
55
-
56
-
57
- 'SQL作成
58
-
59
- Dim sql = New System.Text.StringBuilder()
60
-
61
- sql.AppendLine("INSERT INTO table2(")
62
-
63
- sql.AppendLine("日付")
64
-
65
- sql.AppendLine(",出勤時間(時)")
66
-
67
- sql.AppendLine(",出勤時間(分)")
68
-
69
- sql.AppendLine(",退勤時間(時)")
70
-
71
- sql.AppendLine(",退勤時間(分)")
72
-
73
- sql.AppendLine(",給料")
74
-
75
- sql.AppendLine(")VALUES(")
76
-
77
- sql.AppendLine("DateTimePicker1.Text")
78
-
79
- sql.AppendLine(",syukkinJikan")
80
-
81
- sql.AppendLine(",syukkinHun")
82
-
83
- sql.AppendLine(",taikinJikan")
84
-
85
- sql.AppendLine(",taikinHun")
86
-
87
- sql.AppendLine(",kyuuyoKakutei")
88
-
89
- sql.AppendLine(")")
90
56
 
91
57
 
92
58
 
@@ -94,7 +60,39 @@
94
60
 
95
61
  Dim command As New OleDbCommand
96
62
 
97
- Dim cnAccess As OleDbConnection = New OleDbConnection
63
+ Dim cnAccess As OleDbConnection = New OleDbConnection()
64
+
65
+
66
+
67
+
68
+
69
+ 'SQL文作成
70
+
71
+ Dim cm As New OleDbCommand("INSERT INTO table2 (
72
+
73
+ 日付,出勤時間(時),出勤時間(分),退勤時間(時),退勤時間(分),給料)
74
+
75
+ VALUES(@hiduke,@syukkinJikan,@syukkinHun,@taikinJikan,@taikinHun,@kyuuyoKakutei)", cnAccess)
76
+
77
+
78
+
79
+
80
+
81
+ 'パラメーター化
82
+
83
+ cm.Parameters.Add(New OleDbParameter("@hiduke", hiduke))
84
+
85
+ cm.Parameters.Add(New OleDbParameter("@syukkinJikan", syukkinJikan))
86
+
87
+ cm.Parameters.Add(New OleDbParameter("@syukkinHun", syukkinHun))
88
+
89
+ cm.Parameters.Add(New OleDbParameter("@taikinJikan", taikinJikan))
90
+
91
+ cm.Parameters.Add(New OleDbParameter("@taikinHun", taikinHun))
92
+
93
+ cm.Parameters.Add(New OleDbParameter("@kyuuyoKakutei", kyuuyoKakutei))
94
+
95
+
98
96
 
99
97
 
100
98
 
@@ -110,47 +108,17 @@
110
108
 
111
109
 
112
110
 
113
- Dim tran As OleDbTransaction
111
+ 'SQL文の実行
114
112
 
115
- tran = cnAccess.BeginTransaction
113
+ cm.ExecuteNonQuery()
116
114
 
117
115
 
118
116
 
119
- Try
117
+ '終了
120
118
 
119
+ command.Dispose()
121
120
 
122
-
123
- command.Connection = cnAccess
124
-
125
- command.Transaction = tran
126
-
127
-
128
-
129
- command.CommandText = sql.ToString
130
-
131
- command.ExecuteNonQuery()
132
-
133
-
134
-
135
- tran.Commit()
136
-
137
-
138
-
139
- Catch ex As Exception
140
-
141
- tran.Rollback()
142
-
143
- Throw
144
-
145
- Finally
146
-
147
- command.Dispose()
148
-
149
- cnAccess.Close()
121
+ cnAccess.Close()
150
-
151
-
152
-
153
- End Try
154
122
 
155
123
 
156
124
 

2

本文修正

2021/04/15 07:58

投稿

rarara_123
rarara_123

スコア11

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,40 @@
1
- 発生している問題・エラーメッセージ
1
+ 発生している問題
2
2
 
3
3
  INSERT INTOステートメントの構文エラーを解消したいです。
4
4
 
5
5
  エラーは、Catch ex As Exceptiontran.Rollback()ThrowのThrowで出ています。
6
+
7
+
8
+
9
+ エラーメッセージ
10
+
11
+ System.Data.OleDb.OleDbException: 'INSERT INTO ステートメントの構文エラーです。'
12
+
13
+ この例外は、最初にこの呼び出し履歴
14
+
15
+ ``` System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(System.Data.OleDb.OleDbHResult)
16
+
17
+ System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(System.Data.OleDb.tagDBPARAMS, out object)
18
+
19
+ System.Data.OleDb.OleDbCommand.ExecuteCommandText(out object)
20
+
21
+ System.Data.OleDb.OleDbCommand.ExecuteCommand(System.Data.CommandBehavior, out object)
22
+
23
+ System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(System.Data.CommandBehavior, string)
24
+
25
+ System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
26
+
27
+ WindowsApp6.Form1.Button3_Click(Object, System.EventArgs) 場所: Form1.vb
28
+
29
+ System.Windows.Forms.Control.OnClick(System.EventArgs)
30
+
31
+ System.Windows.Forms.Button.OnClick(System.EventArgs)
32
+
33
+ System.Windows.Forms.Button.OnMouseUp(System.Windows.Forms.MouseEventArgs)
34
+
35
+ ...
36
+
37
+ ```
6
38
 
7
39
 
8
40
 
@@ -130,438 +162,6 @@
130
162
 
131
163
 
132
164
 
133
- 全体のソースコード
134
-
135
- ```
136
-
137
- Imports System.Data.OleDb
138
-
139
- Public Class Form1
140
-
141
-
142
-
143
- Dim str, syukkinJikan, syukkinHun, taikinJikan, taikinHun As Integer
144
-
145
-
146
-
147
- '日付
148
-
149
- Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
150
-
151
-
152
-
153
- End Sub
154
-
155
-
156
-
157
- '出勤時間(時)
158
-
159
- Private Sub ComboBox1_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
160
-
161
-
162
-
163
- End Sub
164
-
165
-
166
-
167
- '出勤時間(分)
168
-
169
- Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
170
-
171
-
172
-
173
- End Sub
174
-
175
-
176
-
177
- '退勤時間(時)
178
-
179
- Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox3.SelectedIndexChanged
180
-
181
-
182
-
183
- End Sub
184
-
185
-
186
-
187
- '退勤時間(分)
188
-
189
- Private Sub ComboBox4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox4.SelectedIndexChanged
190
-
191
-
192
-
193
- End Sub
194
-
195
-
196
-
197
- Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
198
-
199
-
200
-
201
- 'SQL作成
202
-
203
- Dim sql = New System.Text.StringBuilder()
204
-
205
- sql.AppendLine("INSERT INTO table2(")
206
-
207
- sql.AppendLine("日付")
208
-
209
- sql.AppendLine(",出勤時間(時)")
210
-
211
- sql.AppendLine(",出勤時間(分)")
212
-
213
- sql.AppendLine(",退勤時間(時)")
214
-
215
- sql.AppendLine(",退勤時間(分)")
216
-
217
- sql.AppendLine(",給料")
218
-
219
- sql.AppendLine(")VALUES(")
220
-
221
- sql.AppendLine("DateTimePicker1.Text")
222
-
223
- sql.AppendLine(",syukkinJikan")
224
-
225
- sql.AppendLine(",syukkinHun")
226
-
227
- sql.AppendLine(",taikinJikan")
228
-
229
- sql.AppendLine(",taikinHun")
230
-
231
- sql.AppendLine(",kyuuyoKakutei")
232
-
233
- sql.AppendLine(")")
234
-
235
-
236
-
237
- 'Access接続準備
238
-
239
- Dim command As New OleDbCommand
240
-
241
- Dim cnAccess As OleDbConnection = New OleDbConnection
242
-
243
-
244
-
245
- '作成した接続文字列を設定
246
-
247
- cnAccess.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database2.mdb"
248
-
249
-
250
-
251
- 'Access接続開始
252
-
253
- cnAccess.Open()
254
-
255
-
256
-
257
- Dim tran As OleDbTransaction
258
-
259
- tran = cnAccess.BeginTransaction
260
-
261
-
262
-
263
- Try
264
-
265
-
266
-
267
- command.Connection = cnAccess
268
-
269
- command.Transaction = tran
270
-
271
-
272
-
273
- command.CommandText = sql.ToString
274
-
275
- command.ExecuteNonQuery()
276
-
277
-
278
-
279
- tran.Commit()
280
-
281
-
282
-
283
- Catch ex As Exception
284
-
285
- tran.Rollback()
286
-
287
- Throw
288
-
289
- Finally
290
-
291
- command.Dispose()
292
-
293
- cnAccess.Close()
294
-
295
-
296
-
297
- End Try
298
-
299
-
300
-
301
-
302
-
303
- End Sub
304
-
305
-
306
-
307
-
308
-
309
- '確認ボタン(コンボボックスのデータを取得)
310
-
311
- Public Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
312
-
313
-
314
-
315
- syukkinJikan = ComboBox1.SelectedItem
316
-
317
-
318
-
319
- syukkinHun = ComboBox2.SelectedItem
320
-
321
-
322
-
323
- taikinJikan = ComboBox3.SelectedItem
324
-
325
-
326
-
327
- taikinHun = ComboBox4.SelectedItem
328
-
329
-
330
-
331
- '稼働時間(残業、深夜)計算
332
-
333
- Dim kadouJikan, kadouHun As Integer
334
-
335
-
336
-
337
- If taikinJikan > syukkinJikan Then
338
-
339
-
340
-
341
- kadouJikan = taikinJikan - syukkinJikan
342
-
343
-
344
-
345
- ElseIf taikinJikan < syukkinJikan Then
346
-
347
-
348
-
349
- kadouJikan = taikinJikan - syukkinJikan + 24
350
-
351
-
352
-
353
- End If
354
-
355
-
356
-
357
-
358
-
359
- If taikinHun > syukkinHun Then
360
-
361
-
362
-
363
- kadouHun = taikinHun - syukkinHun
364
-
365
-
366
-
367
- ElseIf taikinHun < syukkinHun Then
368
-
369
-
370
-
371
- kadouHun = taikinHun - syukkinHun + 60
372
-
373
-
374
-
375
- End If
376
-
377
-
378
-
379
- Dim kyuukeiJikan, kyuukeiHun As Integer
380
-
381
-
382
-
383
- If kadouJikan < 6 Then
384
-
385
-
386
-
387
- kyuukeiHun = kadouHun
388
-
389
- kyuukeiJikan = kadouJikan
390
-
391
-
392
-
393
- ElseIf kadouJikan >= 6 And kadouJikan < 8 And kadouHun > 45 Then
394
-
395
-
396
-
397
- kyuukeiHun = kadouHun - 45
398
-
399
- kyuukeiJikan = kadouJikan - 1
400
-
401
-
402
-
403
- ElseIf kadouJikan >= 6 And kadouJikan < 8 And kadouHun < 45 Then
404
-
405
-
406
-
407
- kyuukeiHun = kadouHun - 45 + 60
408
-
409
- kyuukeiJikan = kadouJikan - 1
410
-
411
-
412
-
413
- ElseIf kadouJikan >= 8 Then
414
-
415
-
416
-
417
- kyuukeiHun = kadouHun
418
-
419
- kyuukeiJikan = kadouJikan - 1
420
-
421
-
422
-
423
- End If
424
-
425
-
426
-
427
-
428
-
429
- Dim ZangyouJikan As Integer
430
-
431
-
432
-
433
- If kyuukeiJikan < 8 Then
434
-
435
-
436
-
437
- ElseIf kyuukeiJikan >= 8 Then
438
-
439
-
440
-
441
- ZangyouJikan = kyuukeiJikan - 8
442
-
443
-
444
-
445
- End If
446
-
447
-
448
-
449
- Dim kyuuyo, kyuuyoZan, kyuuyoKakutei As Integer
450
-
451
-
452
-
453
- If kyuukeiJikan < 8 Then
454
-
455
-
456
-
457
- kyuuyoKakutei = (kyuukeiJikan * 1500 + (kyuukeiHun / 60) * 1500)
458
-
459
-
460
-
461
- ElseIf kyuukeiJikan >= 8 Then
462
-
463
-
464
-
465
- kyuuyo = (8 * 1500 + (kyuukeiHun / 60) * 1500)
466
-
467
- kyuuyoZan = ((kyuukeiJikan - 8) * 1500 * 1.25 + ((kyuukeiHun / 60) * 1500 * 1.25))
468
-
469
-
470
-
471
- kyuuyoKakutei = kyuuyo + kyuuyoZan
472
-
473
-
474
-
475
-
476
-
477
- End If
478
-
479
-
480
-
481
- '一日分の給料を表示
482
-
483
- TextBox2.Text = kyuuyoKakutei
484
-
485
-
486
-
487
- End Sub
488
-
489
-
490
-
491
- '給料
492
-
493
- Private Sub Label10_Click(sender As Object, e As EventArgs) Handles Label10.Click
494
-
495
-
496
-
497
- End Sub
498
-
499
- '給料
500
-
501
- Public Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
502
-
503
-
504
-
505
- End Sub
506
-
507
-
508
-
509
-
510
-
511
- 'ACCESSと結びつける
512
-
513
- Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
514
-
515
- '押下
516
-
517
- Form2.Text = Button1.Text
518
-
519
- 'Form2に表示される
520
-
521
- Form2.Show()
522
-
523
-
524
-
525
- End Sub
526
-
527
-
528
-
529
- Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
530
-
531
- '押下
532
-
533
- Form2.Text = Button2.Text
534
-
535
- 'Fomr2に表示させる
536
-
537
- Form2.Show()
538
-
539
-
540
-
541
- End Sub
542
-
543
-
544
-
545
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
546
-
547
-
548
-
549
- End Sub
550
-
551
-
552
-
553
-
554
-
555
- End Class
556
-
557
-
558
-
559
- ```
560
-
561
-
562
-
563
-
564
-
565
165
  使っているツールのバージョンなど補足情報
566
166
 
567
167
  ACCESSのバージョン2016

1

本文追加しました

2021/04/14 08:11

投稿

rarara_123
rarara_123

スコア11

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  INSERT INTOステートメントの構文エラーを解消したいです。
4
4
 
5
+ エラーは、Catch ex As Exceptiontran.Rollback()ThrowのThrowで出ています。
6
+
5
7
 
6
8
 
7
9
  https://www.fenet.jp/dotnet/column/%E8%A8%80%E8%AA%9E%E3%83%BB%E7%92%B0%E5%A2%83/6260/