Excel スプレッドシートのテーブルを更新する従来の ASP Web アプリケーションがあります。
以下を使用してExcelファイルに接続しています
Set rows = CreateObject("ADODB.Recordset")
objConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Server.MapPath("data.xlsx") & ";" & _
"Extended Properties=" & Chr(34) & "Excel 12.0 Xml;HDR=Yes" & Chr(34) & ";"
それは私が実行しているサンプルクエリです
query = "UPDATE [Sheet1$] SET [STATUS] = 'unclaimed', [CLAIMER] = '' ,[SDATE] = '"
& DATE & "' WHERE [JUR] = '" & in_jur & "' AND [WC] = " & in_wc
objConnection.Execute query,numRows,adExecuteNoRecords
上記のクエリは、ユーザーがこのように in_jur と in_wc の値を送信する JavaScript 関数を呼び出すボタンをクリックすると、process.asp ページで実行されます。
function sendForProcessing() {
somejur = //use the document.getElementByID to get selected jur
somewc = //use the document.getElementByID to get selected wc
window.location = process.asp?in_jur=somejur&in_wc=somewc
}
アプリケーションはしばらくの間シートを正しく更新し (動作する回数を数えました。1 回目のテスト: 10 回 2 回目のテスト: 16 回変化するだけです)、その後動作を停止します。objConnection.Execute でエラー メッセージが表示されません。
numRows を出力すると、1 が出力されます。
Excel で行を更新するより良い方法はありますか?