ExcelでSQLを使う

エクセルでSQLを使う必須の関数を紹介しします。

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 If
End 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ドライブの『大田区新規顧客リスト』を<顧客名簿>に追加します。