Excelワークシートのボタンを押して、ワークシートからSQLテーブルにデータを送信する必要があります。しかし、このVBAコードはExcelからデータベースにデータをアップロードしていません。私は同様の他のテーブルを持って、それは正常に動作します。これに関する提案や考えはすばらしいでしょう。データはMS SQLデータベースにアップロードされません。
サブSend2SQL()
Dim cmd As New ADODB.Command
Dim rst As ADODB.Recordset
Dim UploadTime, SubmissionNumber, WorkbookSection, DataDescription1, DataDescription2, DataDescription3
Dim iValue, sValue, fValue, bValue, dValue, Omit
Dim UploadRow As Integer
Dim LastRow As Integer
'Establish Error Handler
On Error GoTo ErrorHandler
'Determine UploadTime
UploadTime = Format(Now, "mm\/dd\/yyyy hh\:mm\:ss")
'Loop Through Upload
For UploadRow = 2 To LastRow
With Sheets("DataCapture")
WorkbookSection = .Cells(UploadRow, WorkbookSectionColumn).Value
DataDescription1 = .Cells(UploadRow, DataDescription1Column).Value
DataDescription2 = .Cells(UploadRow, DataDescription2Column).Value
DataDescription3 = .Cells(UploadRow, DataDescription3Column).Value
iValue = .Cells(UploadRow, iValueColumn).Value
sValue = Left(.Cells(UploadRow, sValueColumn).Value, 400)
If sValue = "" Then sValue = Empty
fValue = .Cells(UploadRow, fValueColumn).Value
bValue = .Cells(UploadRow, bValueColumn).Value
dValue = .Cells(UploadRow, dValueColumn).Value
End With
With cmd
.ActiveConnection = conn
.CommandType = adCmdStoredProc
.CommandText = "[DataUpload]"
.Parameters.Append .CreateParameter("@TimeOfUpload", adDBTimeStamp, adParamInput, , UploadTime)
.Parameters.Append .CreateParameter("@WorkbookSection", adVarChar, adParamInput, 60, WorkbookSection)
.Parameters.Append .CreateParameter("@DataDescription1", adVarChar, adParamInput, 255, DataDescription1)
.Parameters.Append .CreateParameter("@DataDescription2", adVarChar, adParamInput, 60, DataDescription2)
.Parameters.Append .CreateParameter("@DataDescription3", adVarChar, adParamInput, 60, DataDescription3)
.Parameters.Append .CreateParameter("@iValue", adBigInt, adParamInput, , iValue)
.Parameters.Append .CreateParameter("@sValue", adVarChar, adParamInput, 400, sValue)
.Parameters.Append .CreateParameter("@fValue", adDouble, adParamInput, , fValue)
.Parameters.Append .CreateParameter("@bValue", adBoolean, adParamInput, , bValue)
.Parameters.Append .CreateParameter("@dValue", adDate, adParamInput, , dValue)
.Parameters.Append .CreateParameter("@FileID", adBigInt, adParamInput, , rstOut)
Set rst = .Execute
End With
Set cmd = New ADODB.Command
Next UploadRow
'Turn off ErrorHandler & Exit Sub
On Error GoTo 0
Exit Sub
ErrorHandler:
MsgBox "There was an Error Uploading your data" & vbNewLine & vbNewLine & "An Automated Email has been sent to Sai Latha Suresh from Acturaial"
On Error GoTo 0
End
End Sub
あなたはどこで、どのようなエラーがで見ることができますので、あなたのエラー処理を脱ぎます。あなたは実際に変数をどのような型でも定義していません。たとえば、 'bValue'はparamですので、ブール値を期待すると問題が発生する可能性があります。 –
エラーが何であるか分からず – jimmy8ball