2009-05-07 15 views
0

Excel 2007ファイルに対して更新コマンドを実行しようとすると、エラーが発生します。 操作で更新可能なクエリを使用する必要があります。私はこのような接続文字列でのSystem.Data.OleDbを使用していOleDbでExcel 2007を更新する

Dim strConn As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
    "Data Source=""" & pathToFile & """;" & _ 
    "Extended Properties=""Excel 12.0;HDR=YES""" 

私は偽=読み取り専用に設定しようとしたが、それはがインストール可能なISAMドライバーが見つかりませんでした提供します。私はMode = ReadWriteとIMEX = 1を設定しようとしましたが、これは効果がないようです。私の更新コマンドは、次のようになります。

Dim cmd As OleDbCommand = con.CreateCommand() 
    cmd.CommandText = "UPDATE [" + sheetName + "] SET [Quantity Error] = 'test' WHERE [Full Name] = 'Mr. Brown White'" 

ここで、sheetNameはExcelスキーマを照会して取得したものです。私は何をしようとしているのですか?どこが間違っていたのですか?

+0

私は同じ問題に直面しています。解決策はありますか? – Veeru

答えて

0

これは通常、アクセス許可の問題だと思います。 Excelで開くとファイルを読み書きできますか?

1

通常、ワークシート名の後に$記号が必要です。試してみてください:$兆候なし

cmd.CommandText = "UPDATE [" + sheetName + "$] SET [Quantity Error] = 'test' WHERE [Full Name] = 'Mr. Brown White'" 

名前は、この接続文字列ワークシート名

0

使用などの名前付き範囲とないと解釈され、これはあなたのExcelに権限をチェックするだけでなく

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + reportFile + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;\";

に動作します接続文字列の拡張プロパティにIMEX=1式が含まれているかどうかを確認します。はいの場合は削除します。

関連する問題