• ベストアンサー

ACCESS2000の帳票フォームでカーソルのあるレコードの他のフィールドの書式変更のモジュール

ACCESS2000の帳票フォームで、一番左のフィールドが得意先名、 間にいくつかのフィールドがあり、一番右のフィールドが金額を入金フィールドとして、 入金フィールドにカーソルがある場合、今どの得意先にいるか分かるように、今いるレコードの得意先フィールドの色を変えたいと思ってます。 この場合のモジュールの書き方を教えて頂けますでしょうか? 条件付書式設定でも無理なので、今はレコードセレクタを使ってます。 でもフィールドが多いため、右のほうに行けばどのレコードにいるのか分からなくなってしまうのです。 宜しくお願いいたします。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

>"テキスト72"="SHIIRE_CD" これじゃ文字列の比較式です [テキスト72]=[SHIIRE_CD]

marshi2
質問者

お礼

有難うございます。 直したら上手く行きました。 感謝いたします。

その他の回答 (3)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.3

> "テキスト72"="SHIIRE_CD"と入れて背景の色を変えました。 [テキスト72]=[SHIIRE_CD] にしてください。

marshi2
質問者

お礼

有難うございます。 直したら上手く行きました。 感謝いたします。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>非連結のフィールドのイベントに「レコード移動」が無いのですが? 例にアップしたコードにも書かれているように フォームのレコード移動時です >非連結テキストと主キーは、各々そのフィールド名を入れればよいのですね? 非連結テキストはコントロール名ね >詳細部分の色を変えたいフィールドに設定すればよいのですか? そうです、全部のフィールドに設定することもできますよ

marshi2
質問者

お礼

続いての回答有難うございます。 フォームヘッダーに「テキスト72」と言う非連結のテキストボックスを置き フォームプロパティの「レコード移動時」のプローシージャに Private Sub Form_Current() Me.テキスト72 = Me.SHIIRE_CD End Sub と書きました。([SHIIRE_CD]が主キー) 詳細のSHIIRE_RNと言うフィールドの条件付書式設定で、条件を「式」にし "テキスト72"="SHIIRE_CD"と入れて背景の色を変えました。 結果 カーソルをレコード間移動したとき、テキスト72ボックスには、選択したレコードのSHIIRE_CDが代入されてますが SHIIRE_RNの背景色は変わりませんでした。 どこかおかしいでしょうか? 明日、もう一度自分なりに確認してみますが何かお気づきの点があれば教えてください。 お手数かけてすみません。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

条件付書式でできますよ レコードに主キーフィールドはあるでしょうか? あれば簡単です フォームヘッダーに非連結のテキストボックスを置き レコード移動イベントに下のコードを書きます Private Sub Form_Current() Me.非連結テキスト = Me.主キー End Sub 条件付書式には 非連結テキスト=主キーフィールド 無ければも続けて質問してください

marshi2
質問者

お礼

早速の回答有難うございます。 ちなみに主キーはあります。 回答に関する質問ですが、 (1)フォームヘッダーに置いた非連結のフィールドのイベントに「レコード移動」が無いのですが? (2)Private Sub Form_Current() Me.非連結テキスト = Me.主キー End Sub の式の部分は、非連結テキストと主キーは、各々そのフィールド名を入れればよいのですね? (3)条件付書式設定は、詳細部分の色を変えたいフィールドに設定すればよいのですか? モジュールをあまり詳しくないもので、すみませんが宜しくお願いしまうS。

関連するQ&A

  • アクセスのフォームビューの帳票フォームではレコード

    アクセスのフォームビューの帳票フォームではレコードを削除する事は出来ないのでしょうか? データシートビューではレコードセレクタを選択し右クリックをすると 「レコードの削除(R)」という項目が出てきますが 帳票フォームでは出てきません。 帳票フォームでレコードを削除する方法を教えてください。 よろしくお願いいたします。

  • Access 帳票フォームのコンボボックス

    こんにちは。 Accessの帳票フォームに得意先のコンボボックスを配置し、入力の手助けをしたいと思います。 しかし、名前が良く似ているため、一部を入力したらリストが絞り込まれるようなものにしたいのです。 単票フォームに同じようなものがあり、非連結のテキストボックスに入力をしたら、コンボボックスに絞り込まれたリストが自動的にドロップダウンされるようなものを作っています。 帳票フォームでこういうことをすることが、難しいことは今までいろいろな方の質問で分かっています。  Access2003  Q:得意先:得意先ID、得意先名、検索カナ  検索カナの一部を入力したら、得意先名のリストが自動的に表示されるようにしたい。  帳票フォームでこのようなことは可能でしょうか? 無理でしたら、無理と言っていただけると諦めがつきます。 よろしくお願いします。  

  • ACCESSのフォーム内のレコードへのサブフォーム内のレコードの表示

    いつも色々な方々に大変お世話になっております。 今回は見積書というフォームの中に、得意先一覧というサブフォームがあり、その得意先一覧にはもちろん得意先の名前があります。 現時点では、見積書フォーム内の得意先名レコードにコンボボックスを設置して選べるようにしてあります。 これを得意先一覧サブフォームの中から、見積書フォーム内の得意先レコードに表示させたい、得意先名をダブルクリックすると転記されるようするのは可能でしょうか? 宜しくお願いします。

  • ACCESS サブフォームのフィールドにカーソルをあてる

    ACCESS2003で、VBAで簡単なプログラムを作っています。 <やっていること> ・フォームAからフォームBを開きます。 ・そのときにフォームAの番号と一致するデータをフォームBに表示します。 ・フォームBにはサブフォームCが埋め込んでいます。 このサブフォームCの中のフィールドDにカーソルが入っているようにしたいのですが、 Forms!サブフォームC!フィールドD.setfocus としたら、「カレントレコードには、フィールドDという名前のフィールドはありません」というエラーがでます。 フィールドDというフィールドは存在しています。 このような場合、どのように記述するのがよろしいのでしょうか。 よろしくお願いします。

  • [Access]あるフォームのクラスモジュールで値を入れた変数を他のフォームでそのまま利用したい

    モジュールとクラスモジュール(イベントプロシージャ)に違いがあることや、モジュールを超えて変数を利用したいときは、Publicで宣言する、という辺りを本を読んでおおまかに理解しました。 帳票管理フォームというフォームに受付CDという主キーの番号があります。そのフォーム上に帳票の詳細な事項を入力するフォームを呼び出すボタンがあります。フォームのイベントプロシージャの一番上のOption Compare Database,Option Explicitの直下行にPublic UketukeCD as Integerと宣言し、 ボタンのイベントプロシージャで、 UketukeCD = Me![受付CD].Value などと記述しました。 新規入力データの受付CDが例えば452ならUketukeCDには452が代入されればいいんです。 帳票の詳細な事項を入力するフォーム(報告書フォームとします)の「読みこみ時」のイベントプロシージャに以下のように記述しました。 こちらのモジュールの一番上にもPublic UketukeCD as Integerと宣言し、(←これは必要なんでしょうか?) Me![受付CD].Value = UketukeCDと書きました。 過去のデータを検索するときはレコードソースのテーブルの受付CDのデータを受付CDフィールドに持ってき、新規入力の場合は、受付CDは帳票管理フォームのものを代入するという設計で、UketukeCDの値(例:452)を報告書フォーム内の受付CDフィールド内に出力する、という感じですが、なぜかUketukeCDにはいつも0が代入されています。 変数は他のモジュールで利用できても代入された値までは移行されないのですか? イベントプロシージャだからできないんですか? 字数の制限上、コードをかなり省略しています。 足りない部分は補足で補いますのでおっしゃって下さい。

  • ACCESSのフォームで複数レコード同時表示

    今ACCESSで製作中のツールで、このようなテーブルから表を作らないといけないのですが、普通に帳票フォームとして作ると思うように出来なくて困っています。 ★テーブル★      ★希望の表★ [フィールド]          (1)日付        1 2 3 4 ~(略)  (2)曜日        月 火 水 木       (3)目標数   目標数   (4)売上げ ⇒ 売上げ  (5)家賃    家賃  (6)電話代   電話代   ~(略) 希望の表がずれてしまいましたが、とにかく日ごとに目標数、売上げ等の値が表示させたいんです。 帳票形式にすると、どんどん下にレコードが表示されていくわけですが、それを右にするという事はやっぱり出来ないのでしょうか。そうなると、日付の分*項目数のテクストボックスを作ってレコードソースで一つ一つ設定していくしかないのかなぁと途方に暮れている次第でございます・・・。 途方に暮れつつも、レコードソースにレコードを指定する方法も全く分からず思考回路が停止寸前です。 どんな事でもよろしいので、何か良い方法、ご指摘あればご教授下さい。質問すら上手くまとめられていませんが、本当に困っているのでよろしくお願い致します。

  • フォームで指定したフィールドのレコード抽出したい

    Access2010使用です。 売上伝票を作るのに、出荷分類7種類(工場渡し・配達・遠距離配達…)、業種別5種類(同業者、職人、現金…)と分類分けされていて、 ひとつの商品の単価で6×5=35種類の価格設定があります。 テーブルの構成はひとつのレコードに対して、 ●商品コード ●商品名 ●分類別単価コード ●分類別単価 ●工場渡し・職人(11) ●工場渡し・現金(12) ●工場渡し・建材店(13) ●工場渡し・同業者(14) ●工場渡し・工務店(15) ●配達・職人(21) ●配達・現金(22) ●配達・建材店(23) ●配達・同業者(24) ●配達・工務店(25) ●遠配達・職人(31) ●遠配達・現金(32) ...etc とあって全部で、39種類のフィールドがあります。 売上伝票というフォームがあって 得意先マスタの方で業種は指定しているので得意先を選ぶと業種([Forms]![F売上メイン]![業種])は自動で指定されますが、 出荷分類([Forms]![F売上メイン]![分類コード])が都度、工場渡しだったり配達だったり異なるのでその都度選択します。 例えば… 出荷パターンが工場渡し・同業者(14) この場合、「工場単価4」のフィールドから指定商品のレコードにある単価を抽出したい 出荷パターンが配達・建材店(23) この場合、「配達単価3」のフィールドから指定商品のレコードにある単価を抽出したい 業種別IDと出荷分類IDを組み合わせて、()内の2桁の番号(出荷パターン)を作っています。 Dlookupでも試みたんですがうまく動作せず、 IIFを用いて出荷パターンが「14」の場合は工場単価4のフィールドから… などと考えたんですが、フィールドを指定して、特定のフィールドから値を抽出する方法がわかりません。 説明がわかりづらいかもしれませんが、どなたか教えてください。

  • 帳票フォームでカーソル移動

    帳票フォームでカーソル移動 お世話になります、帳票フォームでフォームヘッダーに非連結txtBoxを2つ置き(txt適用開始日、txt消費税率) 詳細にクエリのフィールドを表示させています。 下記コードでフォームのダブルクリック時にヘッダーのtxtBoxにレコードを表示させています、 その後カーソルをヘッダーの”txt消費税率”に移動させたく DoCmd.GoToControl "txt消費税率" Forms!フォーム名.txt消費税率.SetFocus Me!txt消費税率.SetFocus 色々試しては見たのですがカーソル移動してくれません! アドバイス宜しくお願いいたします。 Dim adoCN As ADODB.Connection   Dim adoRS As ADODB.Recordset Dim strSQL As String Set adoCN = Application.CurrentProject.Connection strSQL = " SELECT *" _ & " FROM ta02消費税" _ & " WHERE 摘要開始日= #" & Me!txt摘要開始日2 & "#" Set adoRS = adoCN.Execute(strSQL) If adoRS.EOF = False Then Me!txt摘要開始日.Value = adoRS("摘要開始日").Value Me!txt消費税率.Value = adoRS("消費税率").Value * 100 Else MsgBox "該当データがありません", vbOKOnly + vbExclamation, "消費税" Cancel = True Exit Sub adoRS.Close adoCN.Close Set adoRS = Nothing Set adoCN = Nothing End If DoCmd.GoToControl "txt消費税率" ←’タイミングも色々ずらして試したのですが・・・ Me!cmd登録.Visible = False Me!cmd削除.Visible = True End Sub

  • 他フォームのチェックボックスを参照した条件付書式

    OS WinXP ACCESS 2000 ■[フォームA]にチェックボックスを設置して 条件付書式にてチェックボックスのONで任意フィールドに色を点けています。 ※チェックボックスは連結チェックボックスです。  条件付書式の式 [チェックボックス名]=True この方法で問題なく[フォームA]の任意のフィールドに色を点けることはできました。 ■ここからが質問です。 この[フォームA]に設置してあるチェックボックスがONの時 [フォームB]に設置してある非連結テキストボックスにも色を点けたいです。 ※[フォームA]に設置したチェックボックスは、どのレコードがONの状態でも [フォームB]のテキストボックスに色を点けたいです。 目的は [フォームA]の任意フィールドに重要なコメントが入力されている場合 [フォームB]を開いている時に一目で分かる様にしたいので…。 一応、[フォームB]の非連結テキストボックスに 条件付書式の式に  [Forms]![フォームA名]![チェックボックス名]=True としましたがうまくいきませんでした…。 ※フォームは[フォームA][フォームB]ともに単票形式です。 宜しくお願い致します。

  • Access2002:帳票形式のフォーム内に明細を表示させたい

    下記の様なテーブルがあります。 テーブル名:T_明細 +----------------------------------------------+ ID   受注番号   名称   数量   発注先 +----------------------------------------------+ 1   1      りんご   1   A商店 2   1      ぶどう   3   A商店 3   2      みかん   2   A商店 3   2      キウイ   2   A商店 4   2      桃     1   Bショップ 5   3      メロン   3   A商店 6   3      バナナ   2   Cストア +----------------------------------------------+ このテーブルの情報を下記の様なフォームを作成し 表示しようとしています。 フォーム名:F_発注処理(受注番号単位で開かれます)※帳票形式にて表示 ■受注番号1 で開いた場合 ------------------------------- A商店      発注明細       りんご   1       ぶどう   3 ------------------------------- ■受注番号2 で開いた場合 ------------------------------- A商店      発注明細         みかん   2         キウイ   2 ------------------------------- Bショップ   発注明細       桃   1 ------------------------------- ■受注番号3 で開いた場合 ------------------------------- A商店      発注明細       メロン   3 ------------------------------- Cストア      発注明細       バナナ   2 ------------------------------- Accessの仕様で、帳票形式のフォーム内にサブフォームを設置できないのは、知っています。 また、別の方法で「発注明細」部分をリストボックスにし 親レコード毎に、Rowsourceの値を変更するような仕組みにしてみましたが これも上手くいきませんでした。(元々こういう使い方は出来ないのでしょうか・・・) 参考:Form Loadイベントに    Me.明細.RowSource = "SELECT 名称,数量 FROM T_明細 WHERE 受注番号 = " & Me.受注番号 & " and .発注先 = '" & Me.発注先 & "';" 要は、 1.受注番号毎に、F_発注処理フォームは開かれる 2.発注先毎に帳票表示し、各発注先毎に明細を表示 という条件を満たしたいのですが、良い方法が思いつきません。 どなたかご助言頂けませんでしょうか。宜しく御願い致します。

専門家に質問してみよう