|
▼nemotake さん:
こんにちは。
>小僧 さん
>この記述はAccess2000ですか?
>Access97を使用してるのですがコンパイルで
>Dim xlsApp As New Excel.Applicationでユーザ定義型は定義されていませんにな>ってしまいます。
これは参照設定の問題ですね。
VBAのコードを表示させた状態で、[ツール] → [参照設定]のところで
Microsoft Excel x.x Object Library にチェックして下さい。(Ac97だと8.0)
Microsoft DAO x.x Objedct Library にもお願いします。
>小僧さんの記述をまねして作ってみたのですがうまくいきません。
>何がおかしいのでしょうか?
気がついたところをちょっと修正しました。
Public Function T上期計画テーブル作成()
Dim xlsApp As New Excel.Application
Dim xlsWkb As New Excel.Workbook
Dim WkbName As String
Dim ShtName As String
Dim OTRs As Recordset
CurrentDb.Execute _
"CREATE TABLE 上期計画テーブル (店舗コード STRING(3), " _
& "諸勘定科目番号 STRING(5),目標区分 STRING(2)," _
& "4月 DOUBLE,5月 DOUBLE,6月 DOUBLE, " _
& "7月 DOUBLE,8月 DOUBLE,9月 DOUBLE)"
Set OTRs = CurrentDb.OpenRecordset("上期計画テーブル", dbOpenDynaset)
WkbName = "C:\事業計画書.xls"
ShtName = "預金計画表"
Set xlsWkb = xlsApp.Workbooks.Open(WkbName)
On Error GoTo Errpoint
OTRs.AddNew
OTRs!店舗コード = xlsWkb.Sheets(ShtName).Range("D5").Value
OTRs.Update
Errpoint:
xlsWkb.Close: Set xlsWkb = Nothing
xlsApp.Quit: Set xlsApp = Nothing
OTRs.Close
If Err.Number <> 0 Then MsgBox "エラーが発生しました"
End Function
Access2002,Access97で動作確認しました。
このコードは前提として
1:上期計画テーブルが存在しない事
2:c:\事業計画書.xls が存在している事。
3:預金計画表シートが存在している事。
が必要になってきます。特に
Set xlsWkb = xlsApp.Workbooks.Open(WkbName)
と
xlsWkb.Close: Set xlsWkb = Nothing
xlsApp.Quit: Set xlsApp = Nothing
の間でエラーが発生してしまうと、AccessがExcelを掴んだままになって
しまい動作が不安定になってしまいますのでエラーが発生した場合は
Excelを閉じる所まで飛ばすように作りました。
「エラーが発生しました」というメッセージボックスが発生した場合は
上記の間のエラーと考えてください。
|
|