@frswataru (本石 渉)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Excel Vba 実行時エラー’-2147352571(80020005)': 種類が一致しません。

解決したいこと

Excel Vba 実行時エラー’-2147352571(80020005)': 種類が一致しません。

何故か下記のコードのポイントで詰まります
エラーのコード
.Fields("作業日").Value = Range("H1")

解決方法を教えて下さい。

スクリーンショット 2020-10-16 131608.jpg

該当するソースコード

Private Sub CommandButton2_Click()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim conStr As String
conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & "\電子チェックシートDB_S.accdb"
con.Open ConnectionString:=conStr
rs.Open Source:="T_ED_DS_Between", ActiveConnection:=con, _
CursorType:=adOpenKeyset, LockType:=adLockOptimistic




If Range("B1") = "" Or _
   Range("B2") = "" Then


MsgBox "ED_DSが入力されていません"
Exit Sub
End If





Range("F37") = Format(Time, "hh:mm:ss")
If Range("G38") = "" Then
Range("G38") = Format(Range("F37") - Range("E37"), "hh:mm:ss")
Else
Range("G38") = Format(Range("F37") - Range("E38") + Range("G38"), "hh:mm:ss")
End If



'--------------------------------Excel出力--------------------------------
Dim FileName As String
FileName = "********************" & Range("B2") & Range("F37") & ".xlsm" 'ファイル名作成
If MsgBox(Range("B1") & "_" & Range("B2") & ".xlsm" & " で保存しますか?", vbYesNo) <> vbYes Then Exit Sub '保存するか確認して保存しない場合は終了
Application.DisplayAlerts = False '同名のファイルがある場合の警告禁止(必要なら)
ActiveSheet.SaveAs FileName
'From:=1, To:=2


Set fso = Nothing
Application.DisplayAlerts = True '警告許可(上で警告禁止した場合は警告許可に戻す)

Dim i As Integer


With rs


.AddNew

.Fields("ED").Value = Range("B1")
.Fields("DS").Value = Range("B2")
.Fields("ファイル").Value = "#" & FileName & "#"
.Fields("In").Value = Range("E37")
.Fields("Out").Value = Range("F37")
'.Fields("Time").Value = Range("G37")
.Fields("作業日").Value = Range("H1")
.Update

End With



rs.Close
con.Close

MsgBox "お疲れ様でした"
End Sub
0 likes

1Answer

Accessデータベースのデータを挿入するテーブルの作業日カラムのデータタイプは何でしょうか?
おそらく作業日という名称から、日付/時刻型と思われます。
対して、"H1"セルの中身は何でしょうか?
多分、日付/時刻型に変換出来ない値が設定されていると思われます。

一度該当行の直前に以下の行を挿入してデータタイプを確認することをお勧めします。

Debug.Print "作業日のタイプ:" & VarType(.Fields("作業日").Value)
Debug.Print "H1セルのタイプ: " & VarType(Range("H1"))
Debug.Print "H1セルの値: " & Range("H1")

VarType()の戻り値に対応するデータ型は以下の記事を参考にしてください
http://officetanaka.net/excel/vba/function/VarType.htm

0Like

Comments

  1. @frswataru

    Questioner

    h1のセル値が月日ではなく。月月になっていました。
    解決

Your answer might help someone💌