プロが教える店舗&オフィスのセキュリティ対策術

ご覧下さりありがとうございます。
ACCESS2007が異常な動作をしており解決に苦慮していますのでぜひお知恵をお貸し下さい。

顧客向けに開発した販売管理システムがあります。
データベース形式はACCESS2000です。
以前、ACCESS2003で動作させていた時は正常に動いていたのですが、パソコンの故障によりOSをWINDOWS7に、ACCESSを2007に変更したら動作がおかしくなりました。

VBAで
変数 = フォーム上のコントロールの値
という事をしている行があるのですが、そのまま動作させると不思議ですがこの行を実行していないようなのです。
(変数の中身は NULLになっている)

デバッガでそのステップの上下にブレークポイントを設置し、次のステップを実行で先に進めると変数に正しい値が入ります。

今まで一度も経験した事がない現象が起きてパニック状態になっています。
同じ事を経験された方、どのように解決したのかアドバイスをお願いします。

A 回答 (3件)

>フォーム名!テキストボックス1


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

この回答への補足

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

補足日時:2010/03/23 10:34
    • good
    • 0

こんちは


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

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

お礼日時:2010/04/10 12:45

通常はその後で別の値を上書きしている例が多いのですが、


ステップ実行ではなく、Debug.Print分で、代入直後の
変数の値をイミディエイトウィンドウに表示してみては
如何でしょう。

この回答への補足

回答ありがとうございます。
早速試してみました。

変数1 = フォーム名!テキストボックス1
debug.print 変数1
変数2 = フォーム名!テキストボックス2
debug.print 変数2
変数3 = フォーム名!テキストボックス3
debug.print 変数3

結果、やはりテキストボックスの値は代入されませんでした。
この処理の直前と直後にブレークポイントを設定し、再生ボタン(右向き△ボタン)で実行させると正しい値が代入されます。
原因が皆目見当がつかず、キツネにつままれたようです。

補足日時:2010/03/20 16:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す