ExcelでSQLを使う-026: ソース公開-10 SQLExecute関数-2(Excel To Excel)
生後15日齢を迎えて仔犬たちが活発に動き回り始めました。
◇◇◇◇◇
9、エクセルでSQL文を実行するSQLExecute関数
9-2、SQLExecute関数で表の行を更新する
ADO でエクセルの表に接続して更新するには、エクセルの自動更新を停止する必要があります。相互参照をしていなければ、この限りではありません。
Public Function SQLExecute(ByVal strSQL As String, _
Optional ByVal xlFileName As String = "", _
Optional ByVal isHeader As Boolean = True) As Boolean
Application.Calculation = xlCalculationManual
・・・・・
Application.Calculation = xlCalculationAutomatic
End Function
SQLExecute関数での自動更新の停止と再開が効を奏するのかはやってみなければわかりません。一番確かなのは、エクセルのオプションで停止することです。
次は、成績表の列<実施日>を更新するマクロと〔生徒名〕を変更するマクロです。実行結果は、次図の通りです。
Public Sub Message(ByVal Msg As String)
MsgBox Msg, vbInformation, " メッセージ"
End Sub
Sub Macro6()
Dim isOK As Boolean
Dim strSQL As String
strSQL = "UPDATE [生徒名簿$A1:C100] SET 名前='佐藤 彰' WHERE №=3;"
isOK=SQLExecute(strSQL)
If isOK Then
Message "<生徒名簿>の〔名前〕を更新しました。"
End IfEnd Sub
Sub Macro8()
Dim isOK As Boolean
Dim strSQL As String
strSQL = "UPDATE [成績表$D3:J100] SET 実施日='2018/12/20' WHERE 種類='期末試験'"
isOK = SQLExecute(strSQL)
If isOK Then
Message "<成績表>の〔実施日〕を更新しました。"
End If
End Sub
非常に短い記事となりましたが、本稿はここまでです。
次は、SQLExecute関数でINSERT文を実行してDドライブの『大田区新規顧客リスト』を<顧客名簿>に追加します。