• ベストアンサー

ACCESS2007で異常な動作

ご覧下さりありがとうございます。 ACCESS2007が異常な動作をしており解決に苦慮していますのでぜひお知恵をお貸し下さい。 顧客向けに開発した販売管理システムがあります。 データベース形式はACCESS2000です。 以前、ACCESS2003で動作させていた時は正常に動いていたのですが、パソコンの故障によりOSをWINDOWS7に、ACCESSを2007に変更したら動作がおかしくなりました。 VBAで 変数 = フォーム上のコントロールの値 という事をしている行があるのですが、そのまま動作させると不思議ですがこの行を実行していないようなのです。 (変数の中身は NULLになっている) デバッガでそのステップの上下にブレークポイントを設置し、次のステップを実行で先に進めると変数に正しい値が入ります。 今まで一度も経験した事がない現象が起きてパニック状態になっています。 同じ事を経験された方、どのように解決したのかアドバイスをお願いします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.3

>フォーム名!テキストボックス1 これで本当に動いていたのでしょうか? 変数 = Forms!フォーム名!テキストボックス1.Value これが正しい構文ですけど・・・

kunisada
質問者

補足

回答ありがとうございます。 質問の都合上簡略化して記述しましたが、実際には Forms!フォーム名!テキストボックス1 と記述しています。(valueはなくても結果は同じだと思われます)

その他の回答 (2)

  • hasu2950
  • ベストアンサー率0% (0/1)
回答No.2

こんちは 同じ経験はありませんが、1回、VBの変数とフォームの部品を消して コンパイルして、再度作成してみてはどうでしょうか? まったく根拠はないですが・・・

kunisada
質問者

お礼

回答ありがとうございます。 フォームの部品を消してとなりますと事実上の作り直しを意味します。 今回はそれなりの規模のシステムですので作り直しは考えておりません。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

通常はその後で別の値を上書きしている例が多いのですが、 ステップ実行ではなく、Debug.Print分で、代入直後の 変数の値をイミディエイトウィンドウに表示してみては 如何でしょう。

kunisada
質問者

補足

回答ありがとうございます。 早速試してみました。 変数1 = フォーム名!テキストボックス1 debug.print 変数1 変数2 = フォーム名!テキストボックス2 debug.print 変数2 変数3 = フォーム名!テキストボックス3 debug.print 変数3 結果、やはりテキストボックスの値は代入されませんでした。 この処理の直前と直後にブレークポイントを設定し、再生ボタン(右向き△ボタン)で実行させると正しい値が代入されます。 原因が皆目見当がつかず、キツネにつままれたようです。

関連するQ&A