- 締切済み
Access2000でAccess97のテーブルを利用する方法
Access97からAccess2000へのコンバージョンを行っています。様々な問題が発生しているのですが、解消困難な問題があり質問させて頂きます。 まず、背景・環境など長くなりますが、説明します。 自社で開発したプログラムの97→2000への移行を行っていますが、予算とマシンスペックの問題で、ユーザーのOS(95、98、2000、XP)、Office(97、2000)共に混在する状況となります。また、一人のユーザーが複数の事業所で仕事をしており、使用するマシンも一定ではなく、一台のマシンを複数のユーザーが使用します。 問題となっているプログラムは、プログラム本体とデータ部分がそれぞれ別のmdbファイルとして構成されており、本体からテーブルのリンクでデータ用mdbを利用しています。 また、ワークグループを利用しパスワードによるアクセス管理を行っています。 データ部分は、他のプログラムでも利用しており、そのプログラムも97版と2000版が混在しています。 そのため、データmdbは97で利用したいと思っています。 ところが、2000のプログラムでDlookup関数を使用し、97データの取得結果が正しくありません。途中で切れたり、余計な文字が後ろについてしまいます。リンクテーブルを選択クエリにしても同じでした。 例 (正)東京三菱銀行→(誤)東京三菱銀行??○!! (正)123456→(誤)1234 Dlookup("フィールド名" & "","リンクテーブル名") という風に文字列の後に空文字を加えると正しく表示されます。 ただ、すべてのDlookup関数を調べ処理を追加するには数も多く、今後の保守に問題が残ります。 また、データを2000に変換すると問題が発生しません。しかし、互換のため、97形式でデータmdbを作成することも考えたのですが、設定したワークグループセキュリティが解除されることも判明しています。 解決方法か関連情報をお持ちの方、ご教授お願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- TAGOSAKU7
- ベストアンサー率65% (276/422)
それは、、、辛いかもしれませんが、作り直しましょう・・・・ ご存知かとは思いますが、SQL文には規格があります。 バージョンが変わっても、そちらの方が安心して使用できるかと思いますが、、、 「がんばってください」としか言いようがないのが残念です。。。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
DLookUpはAccessのライブラリの関数です。バージョンの違うDBに、バージョンの違う同名のAccess関数を使用するのはどうかと、、、 SQL文で問い合わせても一緒ですか? 可能であれば、ADOを利用することをお勧めします。
補足
回答ありがとうございます。 周りにも聞いてみましたが、同じ問題を抱えている人がいました。 その人がマイクロソフトに問い合わせたところ、Access2000からAccess97のデータにDlookup関数は使用できない(サポート外)そうです。 40個ほどのプログラムファイルがあり、Dlookup関数も数百箇所で使用しています。 ActiveXもクライアントの設定・保守が面倒そうで・・・
お礼
なかなか思い通りにはいかないですね。プログラム群の開発に2億ほどかかったものですが、すでにAccess2000対応の保守調査だけで4~500万は使っています。 1年半後にシステム更新する予定で、オラクルベースのシステム開発がスタートしています。こちらは10億くらいかけて大手ベンダーでの開発なので、OSやソフトの更新にさほど心配はしていません。 新システム稼動までのつなぎの為の保守なので、なんとか数人の自社スタッフで解決しようとしていたのですが・・・