ExcelでSQLを使う

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

ExcelでSQLを使う-025: ソース公開-09 SQLExecute関数-1(Excel To Excel)

99

 

 

生後13日前後から仔犬の目が明きました。

どうやら瞳の色はママ犬と同じ黒のようです。

 

◇◇◇◇◇

 

 SQLExecute関数の紹介記事は、3つです。

 

1、SQLExecute関数で表を削除する。

2、SQLExecute関数で表を更新する。

3、SQLExecute関数で表に挿入する。

 

9、エクセルでSQL文を実行するSQLExecute関数

 

9-1、SQLExecute関数で表の行を削除する


 ADO Connection の ExecuteメソッドとExcelの関係は、Excel固有の制約があって非常に微妙です。その制約の代表格が、Delete文の実行です。例えば、<成績表>から〔生徒_№〕が3の行を削除するSQL文を実行すると、次のようなエラーを得ます。

 

[イミディエイトウインドウ]

? DoExecute("DELETE FROM [成績表$D3:I100] WHERE 生徒_№=3")

False

 

 

 そこで、削除対象の行データをNull値に変換して行詰めすることを試みても、DLookup関数を利用した参照を式に持つ行では実行時エラーが発生して変換できません。この問題を解決するには、削除対象の参照式をクリアする必要があります。現段階では、この仕組みは組み込んでいません。以上のような理由で、現段階では、参照式を持つ列が存在しない行だけがSQLExecute関数で削除することが可能です。

 

Sub Macro5()
  Dim isOK  As Boolean
  Dim strSQL As String
  
  strSQL = "DELETE FROM [顧客名簿$A1:G100] WHERE 郵便番号=1111236;"
  isOK = SQLExecute(strSQL)
  If isOK Then
    Message "新宿区のお客様を<顧客名簿>から削除しました。"
  End If
End Sub

 

 

 

 

 SQLExecute関数のソースコードは、記事《3、SQLExecute関数で表に挿入する》で紹介します。ということで、本記事は、ここまでです。