VBAで、Excel上のデータをデータベースに更新登録を行いたいのですが、エラーが出てしまいつまずきました。みなさんの知恵をお借りしたいです。
よろしくお願いします。
~概要~
このFunctionは、ClickイベントからCallで呼び出しています。
Excelの表の中から"□"が"■"になっている行のデータのみ、データベースに更新登録します。
Function Regist_Table() As Integer '################################################################## 'データの新規登録・更新 '################################################################## Dim objRs As New ADODB.Recordset Dim Renw As ADODB.Command '更新用 Dim strSqlString As String Dim strSetValue As String Dim J As Long Dim RowStart As Integer Dim YouinID As Integer Dim Str_GetTime As String Dim WshNetworkObject As Object Dim StrUsername As String Dim IntTemp As Integer Regist_Table = 0 '********************************************* 'DB接続 '********************************************* Call connectSQL '********************************************* '更新ボックスデータ取得 '********************************************* Dim i As String i = 10 Do Until Cells(i, 2).Value = "" If Cells(i, 2).Value = "■" Then '********************************************* '新規データか更新かを要員IDをベースにチェック '********************************************* '//要員情報 '//要員IDの有無をチェック strSqlString = "" strSqlString = strSqlString & "Select " strSqlString = strSqlString & " count(*) as 要員ID" strSqlString = strSqlString & "From " strSqlString = strSqlString & " M_要員情報 " strSqlString = strSqlString & "Where " strSqlString = strSqlString & " 要員ID = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 4).Value & "' " Set objRs = New ADODB.Recordset '//更新 = ■の時にエラーが出る↓ オートメーションエラーです。 objRs.Open strSqlString, g_objConn, adOpenStatic End If '//メッセージの表示 '//更新 = □で来た時にエラーが出る↓ アプリケーション定義またはオブジェクト定義のエラーです。 If objRs("要員ID") = 0 Then ElseIf MsgBox("処理を中止します。", vbOK + vbInformation) Then Exit Function Else '//データの更新 strSqlString = "" strSqlString = strSqlString & "Update " strSqlString = strSqlString & " M_要員情報" strSqlString = strSqlString & "Set " strSqlString = strSqlString & " 要員ID = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 4).Value & "' " strSqlString = strSqlString & " 社員番号 = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 5).Value & "' " strSqlString = strSqlString & " 姓 = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 6).Value & "' " strSqlString = strSqlString & " 名 = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 7).Value & "' " strSqlString = strSqlString & " 姓かな = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 8).Value & "' " strSqlString = strSqlString & " 名かな = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 9).Value & "' " strSqlString = strSqlString & " 協力会社フラグ = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 10).Value & "' " strSqlString = strSqlString & " 利用不可フラグ = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 11).Value & "' " strSqlString = strSqlString & " 在籍フラグ = '" & Worksheets("要員所属情報一括メンテナンス").Cells(i, 12).Value & "' " Regist_Table = 1 End If
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/17 01:37