投稿者 浦野 宏隆 日時 1997 年 9 月 20 日 09:41:16:
初めての投稿です。よろしくお願いします。
以下のVBAのプログラムでエクセルのセル上のデータをアクセスのテーブルを更新しようとしています。
Sub アクセス返却()
Dim wspDefault As workspace, dbsNorthwind As Database
Dim rstEmployees As Recordset
Dim intErrorCondition As Integer, intUpdateNorthwind As Integer
intUpdateNorthwind = True
intErrorCondition = False
On Error GoTo DBErrorHandler ' エラー トラップを有効にします。
Set wspDefault = DBEngine.Workspaces(0)
' データベースを開きます。
Set dbsNorthwind = wspDefault.OpenDatabase("c:\windows\デスクトップ\保証料返還計算システム_ver2.3.mdb")
If intErrorCondition = False Then
On Error GoTo TableErrorHandler ' エラー トラップを有効にします。
' テーブルを開きます。
Set rstEmployees = dbsNorthwind.OpenRecordset("T_データ登録")
If intErrorCondition = False Then
On Error GoTo EditErrorHandler ' エラー トラップを有効にします。
Do Until rstEmployees.EOF
If rstEmployees![登録ID] = Worksheets("入力データ"). _
Range("D1").Value And rstEmployees![登録年] = Format(Worksheets("入力データ").Range("C1").Value, "00") Then
rstEmployees.Edit ' 編集可能にします。
rstEmployees![変更後保証料] = Worksheets("入力データ").Range("B38").Value
rstEmployees![精算額] = Worksheets("入力データ").Range("B39").Value
rstEmployees.Update ' 変更内容を保存します。
MsgBox "変更後保証料と精算額のデータが登録されました。"
End If
rstEmployees.MoveNext ' 次のレコードに移動します。
Loop
End If
dbsNorthwind.Close ' テーブルを閉じます。
End If
On Error GoTo 0 ' エラー トラップを無効にします。
Exit Sub
DBErrorHandler:
intErrorCondition = True
intUpdateNorthwind = False
MsgBox "データベースを開けません。", vbExclamation
Resume Next
TableErrorHandler:
intErrorCondition = True
UpdateDb = False
MsgBox "[T_データ登録]テーブルを開けません。", vbExclamation
Exit Sub
EditErrorHandler:
strErrorCondition = True
UpdateDb = False
MsgBox "[T_データ登録]テーブルが編集できません。", vbExclamation
Resume Next
End Sub
このプログラムはexcel95のヘルプから引っ張ったものです。
そこで質問ですが、動作環境としてexcel97がインストールされている状況でexcel95上で動かそうとすると大丈夫なのですが、インストールされてない状況だと、DBEngineオブジェクトがどうも定義されていないようで、「データベースを開けません。」というエラーハンドルの部分に行ってしまいます。95のみのインストール上で動かすにはどうしたらいいですか?