過去ログ

                                Page     307
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼アクセス95からアクセス2000への移行について  ヒロセ 03/6/19(木) 10:11
   ┗Re:アクセス95からアクセス2000への移行について  まる 03/6/19(木) 14:39
      ┗Re:アクセス95からアクセス2000への移行について  ヒロセ 03/6/19(木) 15:55
         ┗Re:アクセス95からアクセス2000への移行について  まる 03/6/19(木) 16:05
            ┗Re:アクセス95からアクセス2000への移行について  ヒロセ 03/6/19(木) 17:02
               ┗Re:アクセス95からアクセス2000への...  まる 03/6/19(木) 17:17
                  ┗Re:アクセス95からアクセス2000への...  ヒロセ 03/6/19(木) 18:07
                     ┗Re:アクセス95からアクセス2000への...  まる 03/6/19(木) 18:21
                        ┗Re:アクセス95からアクセス2000への...  ヒロセ 03/6/20(金) 9:19

 ───────────────────────────────────────
 ■題名 : アクセス95からアクセス2000への移行について
 ■名前 : ヒロセ <hirosek@hyg.nec-tokin.com>
 ■日付 : 03/6/19(木) 10:11
 -------------------------------------------------------------------------
   NECのPC98(WIN95)ACCESS95のデータベースから、DOS/V機(WIN98SE)ACCESS2000へバージョン変換を行ったのですが、モジュールを実行させると、
Dim DB As Database
Set DB = CurrentDb()
Set TABLE_1 = DB.OpenTable("テーブル名")
等の構文でエラーとなり、実行できません。
PC98とDOS/Vのドライブの相違(A:、C:)が起因していると思われますが、これを回避する手順をご教示お願いします。

 ───────────────────────────────────────  ■題名 : Re:アクセス95からアクセス2000への移行について  ■名前 : まる <mumumu_mu@hotmail.com>  ■日付 : 03/6/19(木) 14:39  -------------------------------------------------------------------------
   こんにちは

>Dim DB As Database
>Set DB = CurrentDb()
>Set TABLE_1 = DB.OpenTable("テーブル名")
>等の構文でエラーとなり、実行できません。

Database を使用していますが、
参照設定で DAO にチェックはついていますか?

また、Recordset 等、ADOに参照設定が入っていると
優先順位の関係で明示的に宣言しないと動かないと思います。

Dim rs As ADODB.Recordset '<-ADO
Dim rs As DAO.Recordset'<-DAO


>PC98とDOS/Vのドライブの相違(A:、C:)が
>起因していると思われますが、これを回避する手順をご教示お願いします。

このコードだけならば、ドライブは関係ないと思います。
関係ある部分があるのならば、
その部分のコードを提示していただければと思います。


ではでは ^^)/~~

 ───────────────────────────────────────  ■題名 : Re:アクセス95からアクセス2000への移行について  ■名前 : ヒロセ <hirosek@hyg.nec-tokin.com>  ■日付 : 03/6/19(木) 15:55  -------------------------------------------------------------------------
   ▼まる さん:
早速の回答ありがとうございます。

>
>Database を使用していますが、
>参照設定で DAO にチェックはついていますか?
>
VBAを開いて、ツール>参照設定を確認しましたところ、チェックマークが付いている項目は以下の通りでした。

Visual Basic For Applications
Microsoft Access 9.0 Object Library
参照不可:Microsoft Jet SQL リファレンス
参照不可:Microsoft DAO 2.5/3.0 Compatibility Library
OLE Automaition
Microsoft Visual Basic for Applications Extensibility 5.3


>また、Recordset 等、ADOに参照設定が入っていると
>優先順位の関係で明示的に宣言しないと動かないと思います。
>
>Dim rs As ADODB.Recordset '<-ADO
>Dim rs As DAO.Recordset'<-DAO
>

この構文はDimで変数宣言している部分の後に、記述すればよいのでしょうか?


すみません。
問題のデータベースは別人が数年前に作成したもので、私はACCESSについてはほとんど無知なもので・・・・
恐縮ですが、再度ご教示お願いします。

 ───────────────────────────────────────  ■題名 : Re:アクセス95からアクセス2000への移行について  ■名前 : まる <mumumu_mu@hotmail.com>  ■日付 : 03/6/19(木) 16:05  -------------------------------------------------------------------------
   こんにちは

>>Database を使用していますが、
>>参照設定で DAO にチェックはついていますか?
>>
>VBAを開いて、ツール>参照設定を確認しましたところ、チェックマークが付いている項目は以下の通りでした。
>
>Visual Basic For Applications
>Microsoft Access 9.0 Object Library
>参照不可:Microsoft Jet SQL リファレンス
>参照不可:Microsoft DAO 2.5/3.0 Compatibility Library
>OLE Automaition
>Microsoft Visual Basic for Applications Extensibility 5.3

この参照不可の部分のチェックは外して、
DAOならば、

Microsoft DAO 3.6 Object Library

Jet SQL リファレンスの方は
使用しているのならば、新しく参照設定しなおせばいいかと思います。
でも、これって何に使ってるのかな?


>>また、Recordset 等、ADOに参照設定が入っていると
>>優先順位の関係で明示的に宣言しないと動かないと思います。
>>
>>Dim rs As ADODB.Recordset '<-ADO
>>Dim rs As DAO.Recordset'<-DAO
>>
>
>この構文はDimで変数宣言している部分の後に、記述すればよいのでしょうか?

〜 As Database
    ↓
〜 As DAO.Database

このように明示的にするってことです。

ただ、DAOのみ参照設定している状態では
修正はなくても動くと思います。


ではでは ^^)/~~

 ───────────────────────────────────────  ■題名 : Re:アクセス95からアクセス2000への移行について  ■名前 : ヒロセ <hirosek@hyg.nec-tokin.com>  ■日付 : 03/6/19(木) 17:02  -------------------------------------------------------------------------
   ▼まる さん:
またまた早速のご回答ありがとうございます。

おかげさまで、Dim DB As Database のところではエラーが出なくなりました。
しかしながら、別の変数宣言の構文のところでエラーとなってしまいました。

Dim 変数名 As TABLE

<エラー内容>
コンパイルエラー
ユーザ定義型は定義されていません。

どうやら、ユーザ独自でデータ型を定義するようなのですが、どのようなデータ型にするかが分からないのです。まるさんに伺うことなのかどうか疑問なのですが・・・

このようなユーザ定義情報は、現在使用しているPC98マシンの中から取り出せるのでしょうか?

申し訳ありません。ヘルプを参照しても分からないので、再々度ご教示お願いします。

 ───────────────────────────────────────  ■題名 : Re:アクセス95からアクセス2000への...  ■名前 : まる <mumumu_mu@hotmail.com>  ■日付 : 03/6/19(木) 17:17  -------------------------------------------------------------------------
   こんにちは

>どうやら、ユーザ独自でデータ型を定義するようなのですが、
>どのようなデータ型にするかが分からないのです。
>
>このようなユーザ定義情報は、
>現在使用しているPC98マシンの中から取り出せるのでしょうか?

ちょっと誤解があるようですが、
Accessが認識できないものを使用している場合に、
すべてユーザー定義型だろうと判断されているだけです。

ので、今回は
自分で定義するようなものでも、
別のマシンから取り出すようなものでもないですね。


Tableオブジェクトについて
以下のような記述がMSDNにありました。

>******************************************************

DAO の旧式の機能

Access Version 1.x および 2.0、および Visual Basic Version 3.0 は、前のバージョンの DAO を使用していました。これらのバージョンで使用された、オブジェクト、メソッド、プロパティ、およびステートメントのうちの、いくつかは 「旧式」 とされましたが、既存のユーザー プログラムとの上位互換性を保つため、サポートされています。

次の表は、旧式の DAO メソッド、プロパティ、オブジェクト、ステートメントの一覧です。これらは、より強力で、柔軟で、使いやすいものに置き換えられました。表では、旧式の機能のそれぞれに対応する新しい機能が示されています。

旧式の機能      新しい機能
Table オブジェクト  Recordset オブジェクト

>******************************************************

だそうですので、
Recordset オブジェクトを使用した形式にコードを修正するか、
古いバージョンの DAO を参照設定してそちらを使うかでしょう。

Microsoft DAO 2.5/3.51 Compatibility Library

これには非表示メンバとしてですが、
Tableオブジェクトが残っているようです。

もちろん今後のことを考えたら、
新しい形式に修正することも必要かと思います。


ではでは ^^)/~~

 ───────────────────────────────────────  ■題名 : Re:アクセス95からアクセス2000への...  ■名前 : ヒロセ <hirosek@hyg.nec-tokin.com>  ■日付 : 03/6/19(木) 18:07  -------------------------------------------------------------------------
   ▼まる さん:
いつもご丁寧な回答をありがとうございます。
ご教示の通り、TableからRecordsetに修正しました。
前質問のエラーは見事回避することができました。
しかしながら、今度は以下のエラーが発生しました。

Set Source = DB.OpenTable("部門費変換テーブル")
Set Object = DB.OpenTable("部門費変換オブジェクト")
  Object.INDEX = "PRIMARYKEY"
Source.MoveFirst

(1行目の.OpenTableの部分が反転表示)

コンパイルエラー
関数またはインターフェースが予約されているか、またはVisualBasicでサポートされていないオートメーション タイプが関数で使用されています。

度重なる質問で恐縮ですが、ご教示をお願いします。

 ───────────────────────────────────────  ■題名 : Re:アクセス95からアクセス2000への...  ■名前 : まる <mumumu_mu@hotmail.com>  ■日付 : 03/6/19(木) 18:21  -------------------------------------------------------------------------
   こんにちは

Web上で MSDNのページをめっけました
http://www.microsoft.com/japan/developer/library/dao360/dahowobsoletefeatures.htm

>Set Source = DB.OpenTable("部門費変換テーブル")
>Set Object = DB.OpenTable("部門費変換オブジェクト")
>  Object.INDEX = "PRIMARYKEY"
>Source.MoveFirst
>
>(1行目の.OpenTableの部分が反転表示)

全て新しい DAOの使用にあわせて修正する必要があるかもしれません。


ではでは ^^)/~~

 ───────────────────────────────────────  ■題名 : Re:アクセス95からアクセス2000への...  ■名前 : ヒロセ <hirosek@hyg.nec-tokin.com>  ■日付 : 03/6/20(金) 9:19  -------------------------------------------------------------------------
   ▼まる さん:
ありがとうございました。
エラーがすべてなくなりました。
おかげさまで旧バージョン資産を現行に置き換えることができました。
本当にありがとうございました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 307