Page 506 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼フォームビューのレコード順について 若葉 04/2/6(金) 20:18 ┗Re:フォームビューのレコード順について かみちゃん 04/2/6(金) 20:41 ┗Re:フォームビューのレコード順について 若葉 04/2/6(金) 20:50 ┗Re:フォームビューのレコード順について かみちゃん 04/2/6(金) 21:32 ┗Re:フォームビューのレコード順について 若葉 04/2/7(土) 9:36 ┗Re:フォームビューのレコード順について かみちゃん 04/2/7(土) 10:03 ┣Re:フォームビューのレコード順について かみちゃん 04/2/7(土) 11:25 ┃ ┗Re:フォームビューのレコード順について 若葉 04/2/7(土) 11:34 ┣Re:フォームビューのレコード順について 若葉 04/2/7(土) 11:30 ┗新規レコードへの移動について 若葉 04/2/7(土) 12:04 ┗Re:新規レコードへの移動について かみちゃん 04/2/7(土) 13:14 ┗ありがとうございます! 若葉 04/2/7(土) 13:23 ─────────────────────────────────────── ■題名 : フォームビューのレコード順について ■名前 : 若葉 ■日付 : 04/2/6(金) 20:18 -------------------------------------------------------------------------
初歩的な質問だったらすみません。 はじめて顧客管理システムを作成しています。 一覧から変更したい顧客を選択して、顧客の個別情報をフォームビューで 表示させるというよくあるソフトです。 フォームビューはレコードソースに顧客マスタテーブルをセットして いるので、全顧客のレコードが顧客CD順(例えば1〜1000)に 読み込まれています。 ここで、質問なのですが顧客CDが500番の顧客を選択して、 1番ではなく500番の顧客データをフォームビューで 表示させるにはどうすればよろしいですか? 指定したページまで早送りという風にしたいのですが。。。 どうか教えてください。 よろしくお願いします。 |
こんにちは。かみちゃん です。 >ここで、質問なのですが顧客CDが500番の顧客を選択して、 >1番ではなく500番の顧客データをフォームビューで >表示させるにはどうすればよろしいですか? >指定したページまで早送りという風にしたいのですが。。。 質問内容がよくわからないのですが・・・ 現状は、顧客CDが500番なのに、1番の顧客データが表示されてしまうということですか? テーブルがどういようになっているのかわからないので、なんとも言えませんが、リレーションとかの問題ではないでしょうか? |
早速のお返事ありがとうございます。 説明の仕方が悪くてごめんなさい。 フォームビューを開いたときに、指定した顧客(CD:500)のレコードに フォーカスを移動させて表示させたいのです。 『次へ』の移動ボタンを押したら「501」、「502」となり、 『前へ』の移動ボタンを押したら「499」、「498」となるようにです。 この顧客テーブルはフォームのプロパティ設定のレコードソースで セットしています。 なので普通にフォームを開いたらCD:1から表示されてしまうのです。 これで分かっていただけましたか? 初心者なもので説明が下手ですみません。 またよろしくお願いします。 |
こんにちは。かみちゃん です。 >フォームビューを開いたときに、指定した顧客(CD:500)のレコードに >フォーカスを移動させて表示させたいのです。 >『次へ』の移動ボタンを押したら「501」、「502」となり、 >『前へ』の移動ボタンを押したら「499」、「498」となるようにです。 ありがとうございます。理解できました。 これは、フォームのRecordsetオブジェクトのFindFirstメソッドを使えばできます。 とりあえず、次のURLを参考にしてみてください。 http://homepage1.nifty.com/tsware/tips/tips_243.htm また、以下のURLには、サンプルがあります。 http://www.vector.co.jp/soft/win95/business/se105662.html 何かわからないところがあれば、この続きに質問してください。 今の段階では、検索条件を入れて、サブフォームに表示しているのか、別フォームに表示しているのかがわからないので、このあたりまでしかコメントできません。 |
かみちゃん、ありがとうございました! 教えられた通りにしてみたらできました。 もう1つ質問なのですが、今度は[新規登録]ボタンを押して レコードの最終行+1に移動させたいのです。 移動ボタンの右端を押した場合と同じ動作です。 これはどうするのでしょうか? [確定]ボタンを押すまでは、レコードは追加させたくないのですが。。。 教えてもらったURLの内容も調べたのですが、見当たりませんでした。 またまた初歩的な質問ですがよろしくお願いします。 |
こんにちは。かみちゃん です。 >もう1つ質問なのですが、今度は[新規登録]ボタンを押して >レコードの最終行+1に移動させたいのです。 >移動ボタンの右端を押した場合と同じ動作です。 >これはどうするのでしょうか? >[確定]ボタンを押すまでは、レコードは追加させたくないのですが。。。 フォームにある入力用のテキストボックスを作ってあると思うのですが、これは、連結テキストボックスですか?非連結テキストボックスですか? 「[確定]ボタンを押すまでは、レコードは追加させたくない」のであれば、連結テキストボックスの場合は、「登録中止」で登録した内容を削除するなど一工夫いると思います。 なお、フォームを開くと同時に新規レコードに移動する方法は、次のURLが参考になると思いますが、これを応用できると思います。 http://homepage1.nifty.com/tsware/tips/tips_129.htm |
こんにちは。かみちゃん です。 >「[確定]ボタンを押すまでは、レコードは追加させたくない」のであれば、連結テキストボックスの場合は、「登録中止」で登録した内容を削除するなど一工夫いると思います。 「顧客テーブルはフォームのプロパティ設定のレコードソースでセット」しているということですので、連結テキストボックスを使っていると思われるのですが、この場合、入力し始めると即テーブルに反映されてしまいます。 したがって、「[確定]ボタンを押すまでは、レコードは追加させたくない」というのは、できないので、「登録中止」ボタンを作って、反映されてしまったレコードを削除(現在のレコードを削除)する必要があると思います。 その方法については、以下のURLを参考にしてください。 http://www.accessclub.jp/runcommand/acCmdDeleteRecord.html ポイントは、 DoCmd.RunCommand acCmdDeleteRecord 'カレント行の削除 ですので、これ一行だけの記述でとりあえずできます。 確認メッセージが出るのをとめるのであれば、 DoCmd.SetWarnings False 'メッセージ出力=OFF DoCmd.RunCommand acCmdDeleteRecord 'カレント行の削除 DoCmd.SetWarnings True 'メッセージ出力=ON とすれば、できます。 |
またもや、かみちゃんありがとうございます! レコード削除の件、勉強になりました。 レコードセットのdeleteメソッドを使用するよりも、 カレントレコードの削除なら DoCmd.RunCommand acCmdDeleteRecord 'カレント行の削除 の方が明らかに簡単ってことですよね。 まだ削除機能を作ってないので、使わせていただきます! |
かみちゃん早速のお返事ありがとうございました。 教えてもらったURLに書いてたみたいですね。 早速試してみます! (一応質問する前に検索してみたんだけど。。。すみません) >フォームにある入力用のテキストボックスを作ってあると思うのですが、これは、連結テキストボックスですか?非連結テキストボックスですか? >「[確定]ボタンを押すまでは、レコードは追加させたくない」のであれば、連結テキストボックスの場合は、「登録中止」で登録した内容を削除するなど一工夫いると思います。 > レコード更新されてしまうと困るので、非連結にしていて、 コードで値を1つずつセットしています。 >なお、フォームを開くと同時に新規レコードに移動する方法は、次のURLが参考になると思いますが、これを応用できると思います。 >http://homepage1.nifty.com/tsware/tips/tips_129.htm ありがとうございます! これからtryしてみます!! |
教えてもらったやり方で簡単にできました。 ありがとうございます。 すみません。もう1つ質問なのですが、 例えば顧客10人のデータを上記の方法で表示させる場合、 11番目が新規レコードとなりますよね。 10人のデータは、サブルーチンを呼んで値をセットしているのですが、 11人目のデータは初期値をセットするサブルーチンを呼びたいのです。 11人目を区別する方法はありますか? レコード件数を取得して、レコードが移動するごとにカウントする しか方法はないのでしょうか? すみませんが、よろしくお願いします。 |
こんにちは。かみちゃん です。 >例えば顧客10人のデータを上記の方法で表示させる場合、 >11番目が新規レコードとなりますよね。 >10人のデータは、サブルーチンを呼んで値をセットしているのですが、 >11人目のデータは初期値をセットするサブルーチンを呼びたいのです。 >11人目を区別する方法はありますか? CurrentRecord プロパティで現在のレコード番号が取得できます。 たとえばこんな感じです。 MsgBox Me.CurrentRecord CurrentRecord プロパティの詳しい説明は、ヘルプ情報を見てください。 また何かわらなければ、質問してください。 |
こんにちは、かみちゃん。 ありがとうございました。 初歩的な質問ばかりでごめんなさい。 また分からないことがあればUPしますので、そのときは よろしくお願いしまう。 |