MW211 EXIT

devlog
ExcelVBA/更新系プレースホルダ
2014年10月31日
┌──────────────────────────────────────┐
│Dim データベース As New ADODB.Connection                                    │
│Dim キー As Long                                                            │
├──────────────────────────────────────┤
│データベース.Execute "UPDATE 表" _                                          │
│                   & "    SET 列 = 値" _                                    │
│                   & "    WHERE キー = " & キー & ";"                       │
└──────────────────────────────────────┘
上記のような更新処理をプレースホルダ処理に置き換えると以下のようになる。
┌──────────────────────────────────────┐
│Dim データベース As New ADODB.Connection                                    │
│Dim キー As Long                                                            │
├──────────────────────────────────────┤
│Const SQL文 As String = "UPDATE 表" _                                       │
│                      & "    SET 列 = 値" _                                 │
│                      & "    WHERE キー = ?;"                               │
│Dim SQLコマンド As New ADODB.Command                                        │
│With SQLコマンド                                                            │
│    .CommandText = SQL文                                                    │
│    .Parameters.Append .CreateParameter("キー", adInteger, adParamInput)    │
│    .ActiveConnection = データベース                                        │
│    .Parameters("キー") = キー                                              │
│    .Execute                                                                │
│End With                                                                    │
│Set SQLコマンド = Nothing                                                   │
└──────────────────────────────────────┘
分類:ExcelVBA