• 締切済み

無効なパスというエラーメッセージが出てフォームが開かない

Access2000で検索システムを作りました。条件を入力したらマッチするデータが表示される(フォームを開く形にしています。)という流れです。それまで正常に機能していたのですが,ネットワーク上のパソコンの名前を変えたところ、「'\\変更前のパソコン名\****\**.mdb'は無効なパスです。パス名を正確に指定しているか、またはファイルが属するサーバーに接続しているかを確認して ください。」というエラーが出てフォームが開きません。  エラーが出て止まってしまう箇所の記述は DoCmd. Openform "フォーム名"となっています。フォーム名の前にパスを指定することができるのでしょうか?ヘルプではさがせなかったのですが。どなたか回避方法を教えてください。

みんなの回答

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.1

そのフォームはリンクテーブルを見ているフォームじゃないですか? であればリンクのはり直しをすれば済むだけだと思います。 まあADOという可能性もなきにしもあらずですが

関連するQ&A

  • 「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 」がないからだめなのでしょうか? すいません、助けてください。 よろしくお願いします。

  • [Access2000] フォーム間で値の受け渡し

    フォームから、DoCmd.OpenFormを使って、 別のフォームを子画面として開くようにしています。 そのときフォーム間で、Functionの引数と戻り値のような感覚で 値の受け渡しをしたいと思っています。 値をわたす方は、OpenFormの引数のいちばん最後にある OpenArgsを使うことでうまく解決できたのですが、 値を返す方のやり方がイマイチわかりません。   DoCmd.OpenForm "フォーム名",,,,OpenArgs     (カンマの数が間違ってるかも…とりあえずテキトーです) という記述方法の他に、   DoCmd.OpenForm("フォーム名",,,,OpenArgs) という記述もできるようなんですが、そのようにすると 「=」をつけろ、というようなエラーがその場で出ます。 MsgBoxでも同じようなことが起こりますが、 MsgBoxだと「vbOk」やら「vbCancel」やらを返してくれるので OpenFormでも似たようなことができるのかな…と思うのですが。

  • MSアクセス 条件に合うデータのみを抽出してフォームを開けたい

    アクセスの初心者です。ご指導よろしくお願いします。 フォームで条件に合うデータのみを抽出してフォームを開けたいと四苦八苦しています。 現在は汎用フォームを使い、パスIDとパスワードを入れて照合するとDoCmd.OpenForm "フォーム名", , , " [社員No] = 1" で[社員No]「1」のデータのみ抽出した別フォームが開くようになっています。 希望としては、照合した人が照合した人が持つ[社員No]のデータのみが開くようにしたいと考えています。 パス管理のテーブルは ID、 社員No、社員名、パスID、パスワードになっています。   DoCmd.OpenForm "フォーム名", , , " [社員ID] = 1" の「=1」のところが[パスID][パスワード]と一致する社員Noに置き換える方法を教えてください。 わかりにくい質問で申し訳ないですが、よろしくお願いします。

  • MSアクセス 条件に合うデータのみの抽出してフォームを開けたい

    アクセスの初心者です。ご指導よろしくお願いします。 フォームで条件に合うデータのみを抽出してフォームを開けたいと四苦八苦しています。 現在は汎用フォームを使い、パスIDとパスワードを入れて照合するとDoCmd.OpenForm "フォーム名", , , " [社員No] = 1" で[社員No]「1」のデータのみが開くようになっています。 希望としては、照合した人が照合した人が持つ[社員No]のデータのみが開くようにしたいと考えています。 パス管理のテーブルは ID、 社員No、社員名、パスID、パスワードになっています。   DoCmd.OpenForm "フォーム名", , , " [社員ID] = 1" の「=1」のところが[パスID][パスワード]と一致する社員Noに置き換える方法を教えてください。 わかりにくい質問で申し訳ないですが、よろしくお願いします。

  • フォームから別フォームを開くには?

    こんにちは。 Access2010を使っています。 開いているフォームから別のフォームを開きたいのですが、その後ろ側のみにワイルドカード(「*」マーク)を入れたいのですが、上手くいきません。 いろいろやってみましたが、「メモリ不足です」となってしまい、上手くいきません。下記コードにどのようにしてワイルドカードを入れたらよいでしょうか? DoCmd.OpenForm "開きたいフォーム名", acNormal, "", "[キー名]=[Forms]![開いているフォーム名]![キー名]", , acNormal ご教授よろしくお願い致します。

  • アクセス 起動時に2つのフォームを表示したい

    Form_Openのイベントプロシージャーで DoCmd.OpenForm でもう一つのフォームを開くしかないですか? 起動時の設定で二つのフォームを指定することは不可能でしょうか?

  • フォームが開かない

    「F説明」と言うフォームは存在しているし、ナビゲーションウインドウで、ダブルクリックすると、 フォームは開くのに、なぜかVBAで DoCmd.OpenForm Forms("F説明"), acNormal とすると "実行時エラー2498 指定した式は、 いずれか の引数とデータ型が対応していません。” となります。 このvbaコードは、"F説明"の部分を変数にして使いまわしたいので、ダブルコーテーションで囲える文法にしたいのですが、どこが間違っているのか教えていただけますか。

  • なぜかエラーになる

    アクセス2003です。 フォーム1が存在しています。 VBAの標準モジュールで ++++++++++++++++++++++++++++ Sub try1() DoCmd.OpenForm "フォーム1" End Sub ++++++++++++++++++++++++++++ をしたら問題なくフォームが開くのですが ++++++++++++++++++++++++++++ Sub try2() Dim MyFormName As String Dim ctl As Control MyFormName = "フォーム1" For Each ctl In Forms(MyFormName).Controls Debug.Print ctl.Name Next ctl End Sub ++++++++++++++++++++++++++++ をすると、 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 実行時エラー ‘2450’: マクロの式または、VisualBasicコードで参照されている‘フォーム1’フォームが見つかりません。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ となります。 再起動しても同ですが、 他のmdbファイルなら try2のコードで正常にコントロール名を取得できます。 このMDBファイルに問題があると思うのですが try1がOKでtry2がダメな理由がわかりません。

  • ACCESSのエラー

    タイトルのとおりなのですが、突然下記のエラーがでるようになりました。 「イベント プロパティに指定した式 アクティブ時でエラーが発生しました:Returnに対するGoSubがありません」 エラーの発生するタイミングは、 (1)ACCESS起動時(メインフォーム立ち上がる前) エラーメッセージに対して「OK」すると  メインフォームが開きます。 (2)メインフォームから、別のフォームを開こうとすると(Docmd.Openform)エラーメッセージが出て  フォームが開かない。 なお、メインフォームのプロパティ(アクティブ時)には、下記を書いています。 Public Function サイズ元に戻る() 'フォームを元のサイズに DoCmd.Restore End Function 今日の午前中までは、普通に使えておりました。 モジュール等何も変更はしていません。 また、メインフォームのモジュールを確認すると(Alt+F11、デザインビューからイベントプロシージャ等)エラーが出なくなります。 ただ単に破損しているだけなのでしょうか?

  • フォームのOPENとCLOSE(ACCESS VBA)

    ACCESS VBAでフォームA(親)→フォームB(子)→フォームC(孫)とフォームを開いています。 今までは順調に動いていたのですが急にフォームCを閉じると、親フォームのオブジェクトを見つけれないという実行時エラー7874が表示されるようになってしまいました。 デバッグをするとフォームBでフォームCを開いた↓ DoCmd.OpenForm "フォームC", , , , acFormAdd, acDialog の部分にエラー原因があるようです。 なぜこの部分にエラーがでるのかよくわかりません。 しかも何度もやっているうちに(何もプログラムの内容はかわっていません)また動くようになりました。 ひとつわかったのは動く時にはフォームCを閉じた時に フォームBのDoCmd.OpenForm "フォームC", , , , acFormAdd, acDialogの部分の次に帰っているということです。 とりあえず動いてはいますが、原因がわからず困っています。どなたか理由がわかりましたら教えてください。

専門家に質問してみよう