• ベストアンサー

ACCESS97で作成したmdbをACCESS2003で開く際

こんばんは。 掲題の件でエラーが発生します。 「B\XXX\XXX\XXX」のパスが見つかりません。 これは、以前のACCESS97で作成したMDBがWindows95で作成しているため、Windows95ディレクトリのBドライブをパスとして自動的に認識しています。 これをWindowsXpのドライブ(CやDしかないので)の下のディレクトリにコピペして開き、フォーム上のボタンを押すと「DoCmd.OpenForm "F_あいうえお", acNormal」で上記のエラーが発生して先へ進めません。 上記の件で、QNo.910383を参照し、Jet4.0SP8を入れましたが、別件のブロック式のエラーは以前として表示されます。 とにかく、パスのエラーを先へ進めるにはどうしたらよいのでしょうか? 何卒、ご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ree_232
  • ベストアンサー率40% (76/189)
回答No.3

それでは仮想ドライブでBドライブを作成して、そこにファイルを置いてみては? http://www.vector.co.jp/soft/dl/win95/util/se170321.html

Good-S15
質問者

お礼

度々のご回答ありがとうございました。 VB6のランタイムをインストし、何とか対応できました。 しかしながら、これだと、現Dドライブを全て、Bドライブとして認識しているため、後々、このドライブにデータを保存した際に障害が発生する可能性があります。 >現ドライブのパーティションの大きさ等を変更する必要ありです。 >>Dドライブを50GB→10GB、Cドライブを20GB→60GBに あるいは、Dドライブを分割?(DドライブとFドライブに)したいです。 パーティションマジック?で可能でしょうか? これについては、別スレしないといけませんか?

その他の回答 (4)

  • Ree_232
  • ベストアンサー率40% (76/189)
回答No.5

「仮想ドライブ KDrv」は、フォルダをドライブに変更できますよ。Dドライブに「B Drive」とかのフォルダを作りそれを指定すれば問題ないと思います。 また、「仮想ドライブ KDrv」を使うのは一時的にという意味で、一度ACCESS2003で開いて別なところに保存すれば >「B\XXX\XXX\XXX」のパスが見つかりません。 という問題は生じなくなるのではないでしょうか? >Dドライブを50GB→10GB、Cドライブを20GB→60GBに >あるいは、Dドライブを分割?(DドライブとFドライブに)したいです。 使っていないので、はっきりはいえませんが下記のサイトを見る限りでは両方出来そうです。 http://shop.vector.co.jp/service/catalogue/sr044209/ ただ、1回使うために購入するのはもったいないかも。80GBのHDDを新規に購入しても7000円くらいですし、増設できるなら増設のほうがいいと思います。

Good-S15
質問者

お礼

度重なるご回答ありがとうございました。 結局、パーティションマジック7でDドライブを分割>ドライブF(10GB)を作成し、ドライブFを仮想ドライブKDrvでBドライブと認識させることで、解決しました。 今後は、このmdbのデータを追加する場合は、F(仮想B)ドライブに追加していくことで先方に了解してもらいました。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

#2です。 リンクテーブルがあるmdbをWinXpのドライブ内のホルダに作れば言いだけでは・・。 「F_あいうえお」がソースにしているテーブルをお使いのWinXp内のホルダに作成してそのmdbからテーブルをリンクしなおせば問題ないと思いますが。 もしくは「F_あいうえお」があるmdbにそのままテーブルを作れば済みます。

Good-S15
質問者

お礼

度々のご回答ありがとうございました。 「F_あいうえお」がソースにしているテーブルをお使いのWinXp内のホルダに作成してそのmdbからテーブルをリンクしなおせば問題ない >その通りなんですが、客先が作成/使用しているので、できれば、テーブル情報やリンク等全て触らずに対応したいと考えたためにこのような質問となりました。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

開こうとするフォームのレコードソースに指定してあるテーブルが他のmdbのリンクテーブルで存在していない・・とか。 その辺は確認済みだと思いますが。

Good-S15
質問者

お礼

ご回答ありがとうございます。 いえ、その確認済みを確認しておりませんでした。 すみません。 ただ、そのリンクテーブルのドライブが現OS(WinXp)上に存在しないドライブでしたので、、、。

  • Ree_232
  • ベストアンサー率40% (76/189)
回答No.1

ここに書いてあるものではできませんか? http://support.microsoft.com/kb/304324/JA/

Good-S15
質問者

お礼

ご回答ありがとうございます。 添付頂いたURLを拝見しました。 しかし、これは参照したい別の場所にmdbが存在し、その場所のmdbを開くためにパスも指定してコーディングしている場合の対処方法かと存じます。 今回のエラーは、質問文に記載しております通り、パスは特に指定しておりません。 {DoCmd.OpenForm "F_あいうえお", acNormal} 私の勝手な解釈でしょうが、Win95内のAC97で作成しているため、mdbが勝手に「B:\~\~」等とパスを決めてしまっている感があります。 単純に、この場合はこの勝手な「B:\~\~」のパスを今の環境のディレクトリに変更することはできないものなのでしょうか?

関連するQ&A

  • ACCESS2000→ACCESS97に変換した際のエラー

    ACCESS2000で作成したアプリケーションをどうしても97にバージョンを下げないと いけなくなり、97に落としたのですが、下記のようなエラーが出て困っています。わかる方教えて下さい。お願いいたします。 docmd.close docmd.OpenForm○○ →  ココでエラー 内容 「OpenFormのアクションはキャンセルされました  オブジェクトのメゾットを実行しようとしましたが表示されたダイヤログボックスでキャンセルがクリックされました。(実行時エラー:2501)」  

  • 「DoCmd.OpenForm」が実行できない(vbaでフォームを開きたい)

    「フォーム1を開く」vbaで行ないたいのですが エラーになってしまいます。 Sub test1() DoCmd.OpenForm , acNormal, フォーム1 End Sub は「変数が定義されていません」と表示され (「変数の宣言を強制する」にチェックを入れています) Sub test2() DoCmd.OpenForm , acNormal, "フォーム1" End Sub は「引数は省略できません」となります。 Sub test1() DoCmd.OpenForm , フォーム1, acNormal End Sub Sub test2() DoCmd.OpenForm , "フォーム1", acNormal End Sub これにしても同じでした。 「OpenForm」をヘルプで調べてみたところ 「expression 」と「FormName」が「 必ず指定します。」でした。 「expression 」がないからだめなのでしょうか? すいません、助けてください。 よろしくお願いします。

  • Accessの検索フォーム

    以前にも似たような質問をして、その時は解決したのですが、また同じようなことでつまづいて、以前の回答をみて、 そのとおりにやってるつもりなのに、できなくて…。 テーブル1とフォーム1・フォーム2があります。 フォーム1に入力された情報をもとに、テーブル1の内容を検索して、フォーム2に表示するものを作成しています。 テーブル1には「***.***.**.☆」(情報)という形の情報が入っています。 *の部分の桁数は固定で☆は不定形です。(テキスト形式) フォーム1に入力された情報は「(***.***.)**.*」(検索1)や「(***.***.)**.**」(検索2)などです。 ※()内は入力せず テーブル1の情報の9文字目以降と、フォーム1に入力された情報を比べたくて、以下のようなものを作成しました。 (多少省略等があります) condKensaku = "(Mid(Val(テーブル1.情報),9) between " & Val(Me!検索1.Value) & " and " & Val(Me!検索2.Value) & ")" wherecond = condKensaku DoCmd.OpenForm "フォーム2", acNormal, WhereCond これを実行すると 実行時エラー '2501': OpenForm アクションの実行はキャンセルされました。 と出て、デバッグを押すと、 DoCmd.OpenForm "フォーム2", acNormal, WhereCond の行が黄色になります。

  • Access64bitへ移行後、フォーム起動不安定

    Access64bit移行後、特定のフォームの起動が不安定になりました。 3-4回目にようやく開くことができます。 ・開くことができない時は、エラーメッセージなし、Accessそのものが、異常終了しています。 ・一旦開いてしまえば、問題なく使用できます。 ・コマンドボタンで開きます。   DoCmd.OpenForm "フォーム名", acNormal, "", "", , acNormal ・データDBは、社内ネットワーク上のサーバにあります。各自のパソコンにあるAccessから、リンクテーブルで使用しています。 ・Access32bitでは上記不具合はありません。 エラーもなく、静かに異常終了してしまうため、原因の特定ができなくて困っています。 助言等お願いします

  • Access すべてのフォームを開く

    おしえてくださいm__m AccessにてWindowを最小化した後に現在開いているフォームを開くVBAを 作成しようとしていますがうまくいきません。 現在はWindowを最小化した後一つのフォームを開くVBAは下記の通り作成しました DoCmd.RunCommand acCmdAppMinimize DoCmd.OpenForm "メインフォーム", acNormal しかしながら現在開いているすべてのフォームをAccess Windowを最小化した後に 開くVBAはどのように記載すればいいでしょうか 皆さまのお知恵をかしてくださいm__m

  • 実行時エラー7「メモリが不足しています」

    アクセスで DoCmd.OpenForm Form_F1.Name, acNormal で、開こうとすると、 実行時エラー7「メモリが不足しています」がでました。 今まで一度も出なかったのですが、いきなりどうしたのでしょうか? パソコンのメモリは8Gです。 不足するほど少ないのでしょうか?

  • Access98で作ったmdbをAccess2000で変換したらエラー発生

    こちらのFREEの掲示板を使いながらASPを勉強しているところですが、 Access98で作ったmdbをAccess2000のデータベースユーティリティで 変換したところ、下記のようにODBC Drivers エラーが発生しました。 Access2000で作成したmdbを使用する場合にはODBC Driverもバージョン アップしなければならないのでしょうか?対処方法についてもご指導 をお願いしたいと思っています。 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0x5b8 Thread 0x66c DBC 0x2091ba4 Jet' を開くことができません。

  • ACCESS フォームの値がすぐに表示されない

    フォームの値がすぐに表示されない。 宜しくお願い致します。皆様の知恵をお貸しください。 WinXPでACCESS2000を使っております。 テーブル_在庫には 取引先|商品名|買取金額|売上金額|日付のフィールドがあり A社|みかん|0|10000|2012/11/13 A社|りんご|10000|0|2012/11/13 B社|ぶどう|5000|0|2012/11/13 C社|かき|0|3000|2012/11/13 というレコードがあります。 フォーム_取引先のコンボボックスで、A社を選びコマンドボタンで、 クエリ_取引先買取、クエリ_取引先売上 を実行して、A社だけの取引を抽出し、その結果を フォーム_取引先買取とフォーム_取引先売上 に、表形式で表示させています。 このままでは、フォームが2つになるので、新たに基になるテーブルも クエリも持たない、フォーム_売買を作りました。 このフォーム_売買にテキストボックスを6つ作り次のようにしました。 テキストボックス|コントロールソース ---------------------------------------- テキスト1(取引先)|=Forms![取引先]![コンボ1] テキスト2(買取金額)|=Forms![買取]![テキスト1] テキスト3(売上金額)|=Forms![売上]![テキスト1] テキスト4(買取報償料)|非連結 テキスト5(売上報償料)|非連結 テキスト6(合計金額)|=[テキスト2]+[テキスト4]-[テキスト3]-[テキスト5] ここで、問題になっているのが、フォーム_売買を表示させた時に、テキスト1は 普通にA社と表示されているのですが、テキスト2とテキスト3に金額が表示され ません。 しかし、テキスト4もしくはテキスト5に金額を入力すると、表示されるようになり ます。 テキスト4とテキスト5のどちらかには必ず金額を入力するので、このままでも とりあえずは計算出来ているのですが、できれば、フォームが表示された時に 初めからテキスト2とテキスト3には金額が入っていたほうがいいと思い、あれ これ試してみたのですが、出来ませんでした。 フォーム_取引先のコマンドボタンは次のように実行しています。 Dim stDocName As String Dim stDocName1 As String stDocName = "取引先売上" DoCmd.OpenQuery stDocName, acNormal, acEdit stDocName1 = "取引先買取" DoCmd.OpenQuery stDocName1, acNormal, acEdit DoCmd.OpenForm stDocName, acNormal DoCmd.OpenForm stDocName1, acNormal DoCmd.OpenForm "売買", acNormal どうすれば、フォーム_売買が表示された時に、テキスト2とテキスト3に金額が 入っているようになるのでしょうか。 素人が見よう見まねで作っておりますので、おかしい点が多々あるかと思い ますが、ご教授のほど、よろしくお願い致します。

  • OpenFormがACCESS2000でエラー

    メニューのフォームで使っているOpenFormがACCESS2000で次のエラーがでます。OFFICE365では出ません。 「selectステートメントが間違っている予約語や引数を含んでいるか、区切り記号が正しくありません」 例えば次のコードです。 Private Sub 受注入力_Click() DoCmd.OpenForm "受注入力" End Sub 同じようなコードでも次のコードではなぜか出ていません。 Private Sub 受注入力B_Click() DoCmd.OpenForm "受注入力B" End Sub このフォームは何年も変更しておらずエラーは出なかったのですが、1か月前あたりから出るようになりました。 なぜかお分かりの方がおられましたらご教示願えませんでしょうか。

  • Accessでコマンドから空のフォームを開くには?(初心者です)

    Access2003を使用して顧客名簿を作成しています。 コマンドボタン「新規入力」を押すと空のフォームが 開くようにしたいのですが、どのようにしたら良いのでしょうか? 一応、初心者なりに Private Sub コマンド4_Click() Dim namae namae = "個人住所フォーム" DoCmd.OpenForm namae, acNormal End Sub まではやったのですが、開いたフォームは名簿の一番最初の方の データでした・・・。