Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


56 / 500 ページ ←次へ | 前へ→

【12192】Re:チェックボックスでテキストボックス...
お礼  初心 E-MAIL  - 12/10/27(土) 3:48 -

引用なし
パスワード
   hatena様、大変長期に渡る御指導、誠にありがとうございました。
また、御指導だけではなく設計プランまで御提案頂いて大変感謝致しております。
帳票形式という特性上かなり制約があり、半ばあきらめていたところ、ここまでのものが完成するとは思っていなかったので、大変満足しております。
その中で、もう1点質問したいのですが、題名と内容が離れてきており、参考にする方々が検索しづらいと思いますので、新規投稿で質問させて頂きたいのですが、もし、ご都合がよろしければお願い致します。

オプショングループの条件付き書式で・・・との御提案なのですが、私の見解に誤りがなければ、オプショングループに条件付き書式は設定できないと思うのでが、
12178の投稿で御指導頂きましたコンボボックスの選択によって、条件付き書式を使用して、テキストボックスの可視・不可視を設定する[txtkubun] In (1,3,5)をオプショングループにも施すにはどうしたらよいのでしょうか?
これについて、新規に投稿させて頂きたいと存じますので、お時間がございましたら、何卒、御指導方お願い申し上げます。

また、新規レコードで、得点も未入力、欠席失格も選択せずにNullのまま保存されることがないように・・・との御提案部分は、作業の流れとして、受験者情報を入力した後に、試験を実施し、その後、得点を入れていくという流れから、このままのスタイルで行こうと思っております。
・ツリー全体表示

【12191】Re:チェックボックスでテキストボックス...
回答  hatena  - 12/10/26(金) 19:16 -

引用なし
パスワード
   ▼初心 さん:
> hatena様のご指導どおり、作成し完成したのですが、私の考え方に落ち度がございました。
>トグルボタンをオプショングループ化すると、一度、欠席か失格ボタンを押してしまうと、
> 常にどちらか一方が選択された状態となってしまい、両方とも選択しない状態(元の無選択)
> に戻せないという事態が生じてしまいました。
>(オプショングループの特性上、当然の事なのですが)
> hatena様がおっしゃられた出席の場合の"0"をオプションボタンに組み込めばよいのでしょうが、
> 欠席者がほぼでないので効率性の面と、フォームが狭小である事から出席ボタンは省略したいです。
> 理想としてはもう一度ボタンを押すと戻るというのが理想なのですが

その辺りの不都合はプロパティ設定だけではどうしようもないので、VBAで制御することになりますね。

「もう一度ボタンを押す」とチェックが外れる(出席にする)ということも出来ますが、それだと、点数未入力で出席という矛盾した状態になるおそれがあります。

点数が入力されたら出席扱いにするということでしたので、点数を入力したら オプショングループに 0 を代入して「出席」とするようにすればいいかと思いますが、どうでしょうか。

例えば、点数テキストボックスの更新後処理に、

If IsNull(Me.実技得点) Then
  If Nz(Me.実技出欠失) = 0 Then Me.実技出欠失 = 1
Else
  Me.実技出欠失 = 0
End If

得点が入力されれば、出席に。
得点を削除してNullになった時に、欠席に。
という処理です。

また、オプショングループの条件付き書式で、得点がNullでなかったら、使用不可 に設定すれば、点数を入力した時点でEnterキーを押せば、オプションはとばして次の項目に移動します。
無駄な項目移動を省略できますし、得点が入力されているのに、欠席か失格が選択されているという矛盾状態を回避できます。

あと、新規レコードで、得点も未入力、欠席失格も選択せずにNullのまま保存されることがないように、フォームの更新前処理で、欠席失格オプションが Null の時は警告を出して、得点を入力するか欠席失格を選択するように即す処理を追加しておくといいでしょう。
・ツリー全体表示

【12190】一つのレポートでいろんな条件
質問  comakomako  - 12/10/26(金) 18:34 -

引用なし
パスワード
   レポートのレイアウトは一つなので、いろんな条件で出したいのです。なので条件別にクエリを増やしたくないのですが、効率のよい方法はありますでしょうか。

テーブル:
T_商品(商品CD・分類・金額・日付・店舗)

レポート:
1.商品CD順(全部出し)
2.分類ごと改ページで商品CD順
3.店舗ごと改ページで分類順の商品CD順

上記のケースには、日付範囲を加えたり金額を加えたりしていきたいので
イメージとすれば、フォームに条件を入れて「印刷」ボタンを押して出るようにしたいのですが、どのような方法がありますでしょうか。

今までは必要な数だけクエリを作っては同じレイアウトなのにレポートを増やしていったのですが、一か所レポートのレイアウトを変更するたびに、全部同じレイアウトにしなければならないので、一つ一つ修正するのが効率が悪くて困っていたのです。サイトでいろいろ探したのですがいまひとつこれという方法が見つけられません。おしえていただけないでしょうか。
・ツリー全体表示

【12189】Re:複数PCから共有データに通し番号をつ...
質問  ゆう  - 12/10/26(金) 14:39 -

引用なし
パスワード
   小僧 さんへ

ありがとうございます。お礼が遅くなって申し訳ありません。
ワークテーブルを作ったことがなかったので時間が掛かってしまいました。

>>「登録」ボタンを押すと受注番号の最後の番号+1になるようにしていましたが、
>
>この操作方法をどの様に行っていたかによってやり方が変わりますね。

「登録」ボタンを押すとマクロのアクション「値の代入」で、nz(DMax("受注番号","T_入力"),0)+1 をしていました。

この方法で大丈夫でしょうか?


ワークテーブルに新規データを入力後、追加クエリで元のデータに追加して
通し番号を取得、その後ワークテーブル側のデータを削除するようにしましたが、合っていますか?

Requery は必要でしょうか?
必要な場合、どこに入れればよいのか分かりません。

何度もお手数お掛け致しますが、教えて頂ければ幸いです。
・ツリー全体表示

【12188】Re:チェックボックスでテキストボックス...
質問  初心 E-MAIL  - 12/10/25(木) 23:22 -

引用なし
パスワード
   お世話になっております。
hatena様のご指導どおり、作成し完成したのですが、私の考え方に落ち度がございました。
トグルボタンをオプショングループ化すると、一度、欠席か失格ボタンを押してしまうと、常にどちらか一方が選択された状態となってしまい、両方とも選択しない状態(元の無選択)に戻せないという事態が生じてしまいました。
(オプショングループの特性上、当然の事なのですが)
hatena様がおっしゃられた出席の場合の"0"をオプションボタンに組み込めばよいのでしょうが、欠席者がほぼでないので効率性の面と、フォームが狭小である事から出席ボタンは省略したいです。
理想としてはもう一度ボタンを押すと戻るというのが理想なのですが
もし、可能であれば再度の御指導よろしくお願い致します。
・ツリー全体表示

【12187】Re:チェックボックスでテキストボックス...
回答  hatena  - 12/10/25(木) 17:46 -

引用なし
パスワード
   > 私はEnterキーで進めるよりマウスを利用する癖があり、欠席者や失格者が出た場合は得点欄をとばし、
> いきなり欠席失格欄に印を付けてしまうとか、実技得点を入れた後、マウスで次の学科得点に移動し、入力をしてしまう事が多いです。
> (これを踏まえたとしてもEnterキーで進むhatena様の案で問題はないかと思います。)
> ただ、新規で入力する際は失格も欠席も選択されていない状態から自分で欠席・失格の選択を行いたいです。
>(受験者情報登録前から欠席が表示されると落ち着かないという極めて個人的な感情と後に集計表を作成したとき、
> 欠席者のカウントに狂いが生じないだろうかとの心配もございます。)
> 逆に間違って得点を入力してしまってから、失格・欠席を選択すると、得点が入ったままになるという危険性もあるのでが

了解しました。
きわめて適切な仕様だと思います。


オブジェクト名、フィールド名を下記のように設定します。

フィールド
名前    データ型 既定値    値要求
実技得点  数値型  設定しない  いいえ
学科得点  数値型  設定しない  いいえ
実技出欠失 数値型  設定しない  いいえ
学科出欠失 数値型  設定しない  いいえ

出欠失 には、出席=0, 欠席=1, 失格=2 という値を格納するとします。

オプショングループ
名前   コントロールソース
Opt実技 実技出欠失 
Opt学科 学科出欠失

オプショングループ内のトグルボタン
ラベル標題 オプション値
欠席    1
失格    2

テキストボックス
名前     コントロールソース
txt実技得点 実技得点
txt学科得点 学科得点

上記の前面に重ねて配置するテキストボックス
名前     コントロールソース
dsp実技得点  =Choose([実技出欠]+1,[実技得点],"欠席","失格")
dsp学科得点  =Choose([実技出欠]+1,[実技得点],"欠席","失格")

この2つのテキストボックスの「タブストップ」は「いいえ」とします。
また、フォーカス取得時で背面のテキストボックスに SetFocus するイベントプロシージャを設定しておきます。
(これは前々回の回答で説明済みですね。)

あとは、VBAで、不整合な入力にならないように調整することになりますが、
ここでちょっと時間がなくなったので、ここまで。時間で空いたら,また続きを投稿します。
・ツリー全体表示

【12186】Re:チェックボックスでテキストボックス...
発言  初心 E-MAIL  - 12/10/25(木) 1:03 -

引用なし
パスワード
   hatena様、お世話になっております。
細部に渡りここまでして頂き大変感謝しております。

ご提案のとおりで問題ございません。(投稿はしておりませんが、欠席・失格はオプションボタンとさせていただいておりました。)

フォームは幾つかの受験者情報入力(区分、受験者名、等級、生年月日等)→実技得点→実技合否→学科得点→学科合否→実技(欠席・失格)→学科(欠席・失格)という流れになっています。
オプションボタンはテーブルに実技(欠席・失格)と学科(欠席・失格)という、フィールドを作成しコントロールソースと致しました。

私はEnterキーで進めるよりマウスを利用する癖があり、欠席者や失格者が出た場合は得点欄をとばし、いきなり欠席失格欄に印を付けてしまうとか、実技得点を入れた後、マウスで次の学科得点に移動し、入力をしてしまう事が多いです。
(これを踏まえたとしてもEnterキーで進むhatena様の案で問題はないかと思います。)
ただ、新規で入力する際は失格も欠席も選択されていない状態から自分で欠席・失格の選択を行いたいです。(受験者情報登録前から欠席が表示されると落ち着かないという極めて個人的な感情と後に集計表を作成したとき、欠席者のカウントに狂いが生じないだろうかとの心配もございます。)逆に間違って得点を入力してしまってから、失格・欠席を選択すると、得点が入ったままになるという危険性もあるのでが

以上ですが、もし、ご不明な点等ございましたら、恐縮ですが、ご指摘の程、お願い致します。
・ツリー全体表示

【12185】Re:チェックボックスでテキストボックス...
回答  hatena  - 12/10/24(水) 23:41 -

引用なし
パスワード
   >ちなみに、( )内は御推察の通りオプション値です。
>オプショングループ 実技、学科とし、グループ内のトグルボタン (オプション値) 学科 出席 (0)、失格 (1)、欠席 (2) 実技 出席 (0)、失格 (1)、欠席 (2)
>でよいのですが、得点が入った時点で出席と見なしたいため、失格と欠席の二択でお願いしたいのですが。よろしくお願いいたします。

いままでの流れを見てみると、仕様のぶれがあります。

まずは、ユーザーインタフェイスの仕様を綿密に検討しましょう。


フォームのデザイン

   得点

学科 [   ] 【 ○欠席 ○失格 】


実技 [   ] 【 ○欠席 ○失格 】

というようなレイアウトとします。

[  ] はテキストボックス。
【  】はオプショングループ
 ○ はオプションボタン
(トグルボタンよりオプションボタンの方が見易いように思いますがどうでしょうか。)

ユーザーインタフェイス

フォームの新規レコードに移動した時点では、欠席が選択されている(得点未入力なので)。
     フォーカスは学科の得点テキストボックス
        ↓                ↓
 学科の点数を入力してEnterキー      点数を入力せずにEnterキー  
        ↓                ↓
オプションの欠席の選択が自動で外れる   オプショングループにフォーカス移動
        ↓                ↓
        ↓            欠席か失格かを選択。
        ↓                ↓
       実技の得点テキストボックスへフォーカス移動
        ↓                ↓
  実技の点数を入力してEnterキー      点数を入力せずにEnterキー  
        ↓                ↓
オプションの欠席の選択が自動で外れる   オプショングループにフォーカス移動
        ↓                ↓
        ↓            欠席か失格かを選択。
        ↓                ↓
       次の項目へフォーカス移動または次レコードへ移動


これは私が勝手に考えた自分ならこういう設計するという例です。
実際の入力状況などは分かりませんので、これが最適とは限りません。
初心さんの設計方針や好みもあると思いますので、
これをたたき台にして最終仕様を決定してください。

それを待って、実際の設計の説明をしていきたいと思います。
・ツリー全体表示

【12184】Re:複数PCから共有データに通し番号をつ...
回答  小僧  - 12/10/24(水) 16:22 -

引用なし
パスワード
   ▼ゆう さん:
こんにちは。

複数MDBの運用については色々と難しい事がありますよね。

>「登録」ボタンを押すと受注番号の最後の番号+1になるようにしていましたが、

この操作方法をどの様に行っていたかによってやり方が変わりますね。

以下はあくまで当方のやっている一例という事で参考にして下さい。

1) 受注テーブルとまったく同じ構成のテーブルを
  フォームの入っているクライアント側のMDBに準備
  (ワークテーブルと呼びます)

2) データを新規投入する際は受注番号以外を
  いったんワークテーブルに書き出す。

3) データの登録時に、本番テーブルより受注番号+1を採番し、
  ワークテーブルの内容をリンクされた本番テーブルへ書き込む

上記の様な処理を行うと、
本番テーブルを占有する時間が短くする事が可能です。

リンクテーブルを元にフォームを作ってしまうと、
2台以上のMDBが同じテーブルを占有しあおうとして
MDBの破損に繋がる場合が多々ありますので気をつけて下さい。
・ツリー全体表示

【12183】Re:テーブル項目の自動取得の並びについて
回答  小僧  - 12/10/24(水) 16:09 -

引用なし
パスワード
   ▼しはん さん:
こんにちは。

>参照中に並び位置が変わってしまいます。

列の並び順を常に意図通りに並べたいのであれば
列を固定する必要があると思います。

Access側で保持している列の並び順通りに表示したいのであれば

>Private Function FnGetArrayFldName(argsTblName As String) As String()
>Dim voRs As ADODB.Recordset
>Dim vsArryFldName() As String
>Dim i As Long
Dim cn As ADODB.Connection '←追加

  Set cn = CurrentProject.Connection '←追加
    cn.CursorLocation = adUseClient '←追加

>Set voRs = CurrentProject.Connection _
>.OpenSchema(Schema:=adSchemaColumns, _
>Restrictions:=Array(Empty, Empty, argsTblName, Empty))

Set voRs = cn.OpenSchema(Schema:=adSchemaColumns, _
Restrictions:=Array(Empty, Empty, argsTblName, Empty)) '←変更

voRs.Sort = "ORDINAL_POSITION" '←追加
>
>i = 0





の様にソートが可能です。
ですが、あくまでも「Accessが保持している順番」ですので
ある日突然違った並び順になっても文句が言えませんね。


列の追加の度にメンテナンスが必要ですが、
Excel出力用のクエリを用意して、
ざっくり出力するのであれば TransferSpredSheetメソッド、
細かな制御をしながら出力するのであれば CopyFromRecordsetメソッドを
利用してエクスポートするのが良さような気がします。
・ツリー全体表示

【12182】複数PCから共有データに通し番号をつけた...
質問  ゆう  - 12/10/24(水) 0:41 -

引用なし
パスワード
   はじめまして、ゆうと申します。
よろしくお願いします。

複数のパソコンで処理できるようにMDBを分割してデータベース本体(テーブルのみ)を共有サーバーに置き、リンクしたMDBを各パソコンに置きました。

同期やレプリカについて調べましたが、どのタイミングで何を行えば良いのかわかりません。
入力画面を2台同時に開ている時、どちらで入力した内容も保存する為にはどうすれば良いのでしょうか?

受注番号は通し番号で付けていますが、1台だけで使用していた時は「登録」ボタンを押すと受注番号の最後の番号+1になるようにしていましたが、2台同時に開いている場合はどのように設定すればよいのでしょうか?

1台目が受注番号2002を登録したら、2台目が「登録」を押した時には2003がつくようにしたいです。
1台目が入力して同期を行っても、2台目がその間同期していないと2002になってしまうのでしょうか?

わかりにくい説明で申し訳ありませんが、アドバイス頂ければ幸いです。
よろしくお願いします。
・ツリー全体表示

【12181】Re:チェックボックスでテキストボックス...
発言  初心 E-MAIL  - 12/10/23(火) 21:21 -

引用なし
パスワード
   こんばんは、御返事ありがとうございます。
すいません、hatenaさんのご提案の通りです。当方、勘違いをしておりました。
ちなみに、( )内は御推察の通りオプション値です。
オプショングループ 実技、学科とし、グループ内のトグルボタン (オプション値) 学科 出席 (0)、失格 (1)、欠席 (2) 実技 出席 (0)、失格 (1)、欠席 (2)
でよいのですが、得点が入った時点で出席と見なしたいため、失格と欠席の二択でお願いしたいのですが。よろしくお願いいたします。
・ツリー全体表示

【12180】Re:チェックボックスでテキストボックス...
回答  hatena  - 12/10/23(火) 13:50 -

引用なし
パスワード
   > 欠席者は当然失格になるわけがなく、その逆もありえないということで、
> オプショングループを使用し、欠席(実技ボタン・学科ボタン)
> 失格(実技ボタン・学科ボタン)を作成し、テーブルには実技時は1、
> 学科時は2とそれぞれのフィールドに保存するように変更致しました。

ちょっと曖昧な部分があるので確認させてください。

オプショングループ「欠席」内にトグルボタン「実技」(1)・「学科」(2)があり、
オプショングループ「失格」内にトグルボタン「実技」(1)・「学科」(2)があるということでしょうか。
※()内の数字はオプション値。

だとすると設計がおかしいような気がしますが。
このような設計だと、実技、学科 両方とも欠席、あるいは、両方とも失格、という状況はないということになりますが。

何か特殊な事情がないかぎり、下記のような設計になるのでないかと思いますがいかがでしょうか。

オプショングループ グループ内のトグルボタン (オプション値)
学科        出席 (0)、失格 (1)、欠席 (2)
実技        出席 (0)、失格 (1)、欠席 (2)
・ツリー全体表示

【12179】Re:チェックボックスでテキストボックス...
質問  初心 E-MAIL  - 12/10/23(火) 2:00 -

引用なし
パスワード
    こんばんわHatena様、前回もご指導頂き、ホームページもよく拝見致しており参考とさせてもらっております。
 今回も不可能では?という回答が多く半分あきらめておりましたが、無事解決いたしました。本当にありがとうございました。

案1は合否テキストボックスにまだ未入力の受験者データに合否を出さないようにするため、学科a合否: IIf(IsNull([学科a得点]),"",IIf([学科a得点]>=[学科合否基準],"合格","不合格"))をコントロールに入れており、あきらめ、案2を使用させて頂きました。
 そして原理も理解し、作成したのですが、一部変更したい部分が生じまして、また、質問させて頂きたいのですが、

 欠席者は当然失格になるわけがなく、その逆もありえないということで、オプショングループを使用し、欠席(実技ボタン・学科ボタン)失格(実技ボタン・学科ボタン)を作成し、テーブルには実技時は1、学科時は2とそれぞれのフィールドに保存するように変更致しました。
 この変更に伴い、指導頂いた案2:コントロールソース=Switch([欠席],"欠席",[失格],"失格",True,[実技得点])の部分をどのように書き換えていいのかわかりませんでした。
他の方へのアドバイスで忙しいこととは思いますが、ご回答方、お願い申し上げます。
・ツリー全体表示

【12178】Re:チェックボックスでテキストボックス...
回答  hatena  - 12/10/22(月) 12:56 -

引用なし
パスワード
   すみません。投稿をミスしたようですので、再投稿します。

> チェックボックス1にチェックを入れた場合にはテキストボック ス1〜4に「欠席」という文字を
> チェックボックス2にチェックを入れた場合、テキストボックス1〜4に「失格」 という文字を出したいのです。

案1
考え方
実技得点、学科得点、を、欠席の時は Null に設定、失格の時は -1 に設定するようにしておいて、
書式プロパティで表示を変える。

設定手順

テーブルのデザインビューでフィールドの既定値を下記のように設定しておきます。

欠席 False
失格 False
実技得点 0
学科得点 0

フォームのデザインビューで各テキストボックスのプロパティを下記のように設定します。

テキストボックス1
コントロールソース 実技得点
書式 0;"失格";0;"欠席"

テキストボックス2
コントロールソース =Switch([欠席],"欠席",[失格],"失格",[実技得点]>=70,"合",True,"否")

テキストボックス3
コントロールソース 学科得点
書式 0;"失格";0;"欠席"

テキストボックス2
コントロールソース =Switch([欠席],"欠席",[失格],"失格",[学科得点]>=70,"合",True,"否")

チェックボックス1 の更新後処理のイベントプロシージャに下記のコードを記述。

If Me.欠席 Then
  Me.失格 = False
  Me.実技得点 = Null
  Me.学科得点 = Null
End If

チェックボックス2 の更新後処理のイベントプロシージャに下記のコードを記述。

If Me.失格 Then
  Me.欠席 = False
  Me.実技得点 = -1
  Me.学科得点 = -1
End If


案2
考え方
テキストボックス1 と テキストボックス3 の上に、それぞれぴったり重なるようにテキストボックスを重ねて、
それを表示用とする。フォーカス取得時に、テキストボックス1、テキストボックス2 にフォーカス移動させて
入力出来るようにする。背面にあるコントロールもアクティブになると前面に浮き出てくる性質を利用してます。

テキストボックス1 の上に重ねたテキストボックス

コントロールソース =Switch([欠席],"欠席",[失格],"失格",True,[実技得点])
タブストップ いいえ

フォーカス取得時のイベントプロシージャ

Me.テキストボックス1.SetFocus

テキストボックス3 の上に重ねたテキストボックス

コントロールソース =Switch([欠席],"欠席",[失格],"失格",True,[学科得点])
タブストップ いいえ

フォーカス取得時のイベントプロシージャ

Me.テキストボックス3.SetFocus

>  ただ、このテキストボックスには既に、コンボボックス「txtkubun」の値を参照して背景色と
> 同化させフォーカスできないようにするための[txtkubun]=1 Or [txtkubun]=3 Or [txtkubun]=5
> という条件付き書式の関数が許容数である、3つ「条件1」に指定されてしまっています。
>  これに質問のチェックボックスにチェックがついた時の条件を組み込めるものでしょうか?

条件付き書式 の 条件 で「式」を選択して、下記の式を設定すれば、一つの条件で済みますので、
あと、チェックボックスの条件を組み込めばいいのでは。

[txtkubun]=1 Or [txtkubun]=3 Or [txtkubun]=5

または、

[txtkubun] In (1,3,5)
・ツリー全体表示

【12177】テーブル項目の自動取得の並びについて
質問  しはん  - 12/10/22(月) 1:30 -

引用なし
パスワード
   初めて投稿します。

以下の様な項目をもつテーブルをEXCELに出力しようとしており
ADOを利用して追加出力しようとしているのですが
参照中に並び位置が変わってしまいます。

<ACCESSのテーブル項目の並び>
[順] [BBBB] [AAAA] [DDDD] [CCCC]

<収集された際の項目の並び>
[AAAA] [BBBB] [CCCC] [DDDD] [順]

定義を与えて固定にしてしまえば一応は解決しますが、それですと今後フィールドの増減が発生した場合
VBA側でもテーブル定義の修正が入るので出来れば避けたいと思っています。

どの様にしたら取得の順番がACCESSのテーブル項目の順番で取得されるのでしょうか?
それとも変えられないものなのでしょうか?


------------------------------------------------------

Function EXCEL()

'/参照設定 Microsoft ActiveX Data object 2.0 Library /
'-----------------------------------
Const csTbl As String = "OutPut" 'Accessテーブル名
Dim voCn As ADODB.Connection
Dim vvArryFldName As Variant 'フィールド名用配列
Dim vvRet As Variant

vvRet = SysCmd(acSysCmdSetStatus, "Accessフィールド名取得中......")
vvArryFldName = FnGetArrayFldName(csTbl)
DoEvents

End Function

'-----------------------------------
Private Function FnGetArrayFldName(argsTblName As String) As String()
Dim voRs As ADODB.Recordset
Dim vsArryFldName() As String
Dim i As Long

Set voRs = CurrentProject.Connection _
.OpenSchema(Schema:=adSchemaColumns, _
Restrictions:=Array(Empty, Empty, argsTblName, Empty))

i = 0
Do Until voRs.EOF '繰り返し 開始 -----------------------------
ReDim Preserve vsArryFldName(i)
vsArryFldName(i) = voRs![COLUMN_NAME].Value 'ソートされて格納されてしまう箇所

Debug.Print vsArryFldName(i) 'デバック結果

i = i + 1
voRs.MoveNext '次のレコードへ
Loop ' 繰り返し 終了 -------------------------------------------

FnGetArrayFldName = vsArryFldName
voRs.Close: Set voRs = Nothing

End Function

-----------------------------------
・ツリー全体表示

【12176】Re:チェックボックスでテキストボックス...
発言  初心 E-MAIL  - 12/10/21(日) 21:15 -

引用なし
パスワード
   こんばんわhatenaさん せっかく御回答頂いたようなのですが、なぜかみられません。 すいませんが、もう一度、お願いしたいのですが、よろしくお願いします。
・ツリー全体表示

【12175】Re:チェックボックスでテキストボックス...
回答  hatena  - 12/10/21(日) 7:44 -

引用なし
パスワード
   ▼初心 さん:
> かるびのさんの方法をためしたところ、「帳票形式」でも、プロパティが1つしか
>ないため、すべてのレコードに反映されてしまうようです。
> 文字の表示はあきらめて条件付き書式で背景と同化させた上で、フォーカスできないような形に進路変更しようと考えています。
> ただ、このテキストボックスには既に、コンボボックス「txtkubun」の値を参照して背景色と同化させフォーカスできないようにするための[txtkubun]=1 Or [txtkubun]=3 Or [txtkubun]=5という条件付き書式の関数が許容数である、3つ「条件1」に指定されてしまっています。
> これに質問のチェックボックスにチェックがついた時の条件を組み込めるものでしょうか?
> 代替え案でもよろしいので、どなたか、おわかりの方がいらっしゃれば、よろしくお願い致します。
・ツリー全体表示

【12174】Re:チェックボックスでテキストボックス...
質問  初心 E-MAIL  - 12/10/21(日) 1:33 -

引用なし
パスワード
    かるびのさんの方法をためしたところ、「帳票形式」でも、プロパティが1つしか
ないため、すべてのレコードに反映されてしまうようです。
 文字の表示はあきらめて条件付き書式で背景と同化させた上で、フォーカスできないような形に進路変更しようと考えています。
 ただ、このテキストボックスには既に、コンボボックス「txtkubun」の値を参照して背景色と同化させフォーカスできないようにするための[txtkubun]=1 Or [txtkubun]=3 Or [txtkubun]=5という条件付き書式の関数が許容数である、3つ「条件1」に指定されてしまっています。
 これに質問のチェックボックスにチェックがついた時の条件を組み込めるものでしょうか?
 代替え案でもよろしいので、どなたか、おわかりの方がいらっしゃれば、よろしくお願い致します。
・ツリー全体表示

【12173】Re:チェックボックスでテキストボックス...
発言  初心 E-MAIL  - 12/10/16(火) 0:45 -

引用なし
パスワード
   ▼かるびの さん:
> 作成しているフォームは、帳票フォームですか、データシートですか。
>
> 帳票フォームなら、次の方法が考えられます。 
>
> テキストボックス5〜8を配置します。
> テキストボックス5は、テキストボックス1と同じ大きさにし、
>テキストボックス1の上に、テキストボックス1と重なるように配置します。
> テキストボックス6〜8についても、同様に
>テキストボックス2〜4の上に重ねて配置します。
> テキストボックス5〜8は、VisibleプロパティをFalseにしておきます。
>
> イベントプロシージャを使って、
>チェックボックス1をTrueにしたら、
>テキストボックス5〜8のVisibleプロパティをTrueに設定し、
>テキストボックス5〜8のValueプロパティに「欠席」を代入します。
>チェックボックス1をFalseにしたら、
>テキストボックス5〜8のVisibleプロパティをFalseに設定します。
>
> チェックボックス2についても、チェックボックス1と同様に操作します。 
>
>
> データシートだと、この方法はとれませんね。
> 帳票フォームを使い、縦横にコントロールをくっつけ、
>データシートみたいな見た目にするよりなさそうです。


ありがとうございます。
やはり、表形式では難しいようですね。
文字表示は諦めて、条件付き書式で入力できないようにする方法にしようとおもいます。
・ツリー全体表示

56 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1078304
(SS)C-BOARD v3.8 is Free