Accessで、DoCmd.FindRecordがオートナンバーを間違える
Access2003 XPです。
タイトルを短くと思ったら変な文章になってしまいました。
内容は、サブフォームにデータシートで表示させているデータがありまして、ダブルクリックされた行のデータを別フォームに単票フォームで表示させています。
データベースにはオートナンバーを設けてあり、ダブルクリックされた行のオートナンバーを取得して、
単票フォーム表示のフォームのオートナンバーのフィールドを指定して、
DoCmd.FindRecordで開くようにしています。
↓ソース
'単票フォーム画面(Mainフォーム)を開く
DoCmd.SelectObject acForm, "Main"
'表示するレコードを指定
DoCmd.GoToControl "txtNo" ←オートナンバーが連結されている
DoCmd.FindRecord intNo, acAnywhere ←IntNoが取得した番号
オートナンバーの取得はうまく出来ています。
が、単票フォームを開くと違うデータが開くので
何番を開いているのか調べてみたら
3を指定 → 213を表示
7を指定 → 217を表示
81を指定 → 281を表示
100を指定→ 100を表示
ちなみにデータは294件あります。3桁なら良いのですが
桁数が少ないと、1の桁、10の桁だけ変更されるようで…。
DoCmd.FindRecord intNo, acAnywhere の前にIntNoに0を渡してから取得したオートナンバーを渡してもだめでした。
で、テーブルにてオートナンバーの列を一旦削除して再度設けてふりなおしたら1桁だけのデータも全てちゃんと表示されるようになりました。
データ更新をしていると何らかのきっかけで又だめになるようです。
きっかけは分かりません;;
この現象は何なのか、解決法が分かる方いらっしゃいましたらお願いします。
お礼
こちらのPCの不具合で回答を見れなくなっていました。 せっかくご回答いただいていましたのにご返事できませず申し訳ありませんでした。 それと私の説明不足でした。 テキストボックス自体を非表示にするのでなく、新規レコードのときテキストボックスの中に表示される”オートナンバー”の文字のことです。 テキストボックスの幅より”オートナンバー”の文字が大きくて末尾の”ンバー”しか表示されないので文字がない方がマシだと思ったからです。 良い方法があれば教えてください。