|
初心者なもので、ご指導お願いします。
環境 WindowsXP SP2 ACCESS2003 SP2
今までACCESSよりDAOで既存のEXCELファイルに出力していました
ところが Office2003 ServicePack2をインストールしたところ
「データベースまたはオブジェクトは読み取り専用なので、更新できません」
というエラーが出るようになりました。
調べた所下記URLの
http://support.microsoft.com/kb/904953
「Office Access2003またはAccess2002でExcelブックにリンクされている
テーブル内のデータを変更、追加、削除できない」という所の問題かと思い
回避策を確認したのですが、DAOの際の回避策がよくわかりません
どなたか教えて頂けるでしょうか
よろしくお願いします。
ソースの抜粋です
Dim XlsDb As Database, MyDb As Database
Dim XlsRs As Recordset, MyRs As Recordset
Dim EndFlg As Integer, I As Integer
Set XlsDb = OpenDatabase(Path & "\" & ExcelName, False, False, ExcelType)
Set XlsRs = XlsDb.OpenRecordset(SheetName & ExcelRange)
Set MyDb = CurrentDb
Set MyRs = MyDb.OpenRecordset(TblSql, dbOpenSnapshot)
ToExcel = 1
EndFlg = 0
If MyRs.EOF = False Then
MyRs.MoveFirst
Else
ToExcel = 0 '出力データナシ
DoCmd.Hourglass False
Exit Function
End If
If XlsRs.EOF = False Then
XlsRs.MoveFirst
Do Until XlsRs.EOF
If EndFlg = 0 Then
With XlsRs
.Edit ←ここでエラーが出ます
For I = 0 To FieldCount - 1
XlsRs.Fields(I) = MyRs(FieldArray(I))
Next I
.Update
End With
Else
With XlsRs
.Edit
For I = 0 To FieldCount - 1
XlsRs.Fields(I) = Null
Next I
.Update
End With
End If
If EndFlg = 0 Then
MyRs.MoveNext
If MyRs.EOF = True Then
EndFlg = 1
End If
End If
XlsRs.MoveNext
Loop
If EndFlg = 0 Then
ToExcel = -2 'エクセルデータ格納セル不足
End If
Else
ToExcel = -3 'エクセルデータ格納セル0
End If
XlsRs.Close
XlsDb.Close
|
|