Access VBA質問箱 IV

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

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


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

【5458】Re:帳票フォーム上のコンボボックスでのフ...
質問  なおなお  - 05/6/21(火) 17:11 -

引用なし
パスワード
   ▼クロ様:

>フォームの方の値集合ソースと列幅はどうなってますか?

値集合ソース「社員テーブル」
列数「3」
列幅「0cm;1.503cm;1.503cm」
連結列「2」
リスト行数「40」
リスト幅「3cm」
となっております。
・ツリー全体表示

【5457】Re:チョット修正しました。
質問  なおなお  - 05/6/21(火) 17:07 -

引用なし
パスワード
   ▼クロ様:

>そうですか?
>通常はフォームのレコードソース名が付くと思いますが...

はい。SU1を例にしてご説明します。

本来、SU1はコンボボックスですが、コントロールの種類を変更して
テキストボックスにすると、そこには「社員CD」が表示されます。
そのテキストボックスの「SU1」に選択フィルタを使うと
「フォーム名.SU1="4566"」になるのですが、
コンボボックスのままで選択フィルタを行なった場合、
「LOOKUP_SU1.社員名称="山田"」となってしまうのです。
・ツリー全体表示

【5456】Re:帳票フォーム上のコンボボックスでのフ...
回答  クロ  - 05/6/21(火) 17:02 -

引用なし
パスワード
   ▼なおなお さん:

>次に、フォームのSU1〜SU3のコンボボックスの連結列を「1」→「2」に変更したところ
>フォームのSU1〜SU3のコンボボックスに社員CDが表示されるようになりました。

フォームの方の値集合ソースと列幅はどうなってますか?
・ツリー全体表示

【5455】Re:帳票フォーム上のコンボボックスでのフ...
質問  なおなお  - 05/6/21(火) 16:52 -

引用なし
パスワード
   ▼クロ様:

>テーブルのルックアップを変更後に
>フォームを開いてみてどうなってますか?su1〜su3に社員CDが入ってますか?
>また、フォームの方の各コントロール連結列はどうなってますか?

最初にテーブルのSU1〜SU3のコンボボックスの連結列を「1」→「2」に変更した後
フォームを開くと、SU1〜SU3はまだ社員名称が表示されていました。

次に、フォームのSU1〜SU3のコンボボックスの連結列を「1」→「2」に変更したところ
フォームのSU1〜SU3のコンボボックスに社員CDが表示されるようになりました。
・ツリー全体表示

【5454】Re:チョット修正しました。
回答  クロ  - 05/6/21(火) 16:48 -

引用なし
パスワード
   ▼なおなお さん:
>申し訳ありません。
>連結列はそれぞれ「2」に設定しました。
>「社員名称」にするにはどうすれば良いのでしょうか。

テーブルのルックアップを変更後に
フォームを開いてみてどうなってますか?su1〜su3に社員CDが入ってますか?
また、フォームの方の各コントロール連結列はどうなってますか?

>このLOOKUP_SU2の「LOOKUP_」なんですが、
>ツールバーの選択フィルタを「SU2」に使用するとwhere句に
>自動的に「LOOKUP_SU2」という名前になってしまいます。

そうですか?
通常はフォームのレコードソース名が付くと思いますが...
・ツリー全体表示

【5453】Re:帳票フォーム上のコンボボックスでのフ...
質問  なおなお  - 05/6/21(火) 16:20 -

引用なし
パスワード
   ▼クロ様:

>但し、テーブルのルックアップを指定を変更した段階で既に入っている値は社員CDと
>なってますので「社員名称」に変える必要があります。

申し訳ありません。
連結列はそれぞれ「2」に設定しました。
「社員名称」にするにはどうすれば良いのでしょうか。

>Me!text_店舗数 = obj!完了予定店舗数
>の「完了予定店舗数」は「完了予定数」だと思います。

ご指摘ありがとうございます。
修正いたしました。

>また、LOOKUPという名のフォーム名は止めた方がいいです。

このLOOKUP_SU2の「LOOKUP_」なんですが、
ツールバーの選択フィルタを「SU2」に使用するとwhere句に
自動的に「LOOKUP_SU2」という名前になってしまいます。
・ツリー全体表示

【5452】ページ計のあるレポートの作成について
質問  あおぎん  - 05/6/21(火) 15:42 -

引用なし
パスワード
   金融機関への振込み依頼書を作成したいのですが、

レポートの項目として、

・金融機関コード
・名義人
・振込金額

があり、

様式の条件として、
・1ページが15件ずつであること
・ページの小計(振込金額の計)があること
・総振込金額が1ページめに表示されること

が必要になります。

15件ずつの記載は、ヘルプ等を参考にできたのですが、
ページの小計と、レポート計の1ページ目での表示がうまくできません。

ページ小計は
ネットで検索して、

『ぺージフッターに空のテキストボックス(名前はtxt_PageCount)を配置します。
「詳細セクション」の「印刷時イベント」を利用して、
「詳細セクション」にある振込額テキストボックス(名前はtxt_Count)の値を
テキストボックスtxt_PageCountに次々と加算していく方法です。
それには、「ページフッター」の「フォーマット時イベント」を利用して
テキストボックスtxt_PageCountの値をその都度 0 にして、ページごとに集計を独立させます』

という方法で表示させるようにしました。

『Option Compare Database

 Private Sub ページヘッダーセクション_Format(Cancel As Integer,   FormatCount As Integer)

  'txt_PageCountは、「ページヘッダー」で合計を求めるテキストボックスです。
  Me.TXT_PAGECOUNT = 0
End Sub

Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
  
   Me.TXT_PAGECOUNT = Me.TXT_PAGECOUNT + Me.TXT_COUNT
End Sub』

としたのですが、小計がうまく計算できていないようです。
1ページ目は正しいのですが、2ページ以降、そのページの15件のレコードだけでなく、別のレコードも足しているようです。

レポート計を1枚目に表示させる方法はいろいろ検索してもよくわからなくて、
今までは、手で書いてました・・。


様式の条件を満たすレポートの作成方法がありましたら、どうか教えてください。
よろしくお願いいたします。
・ツリー全体表示

【5451】Re:帳票フォーム上のコンボボックスでのフ...
回答  クロ  - 05/6/21(火) 15:14 -

引用なし
パスワード
   ▼なおなお さん:
>これですと、選択フィルタによって抽出されたレコード数になってしまいます。
>抽出された店舗には同名の物があり、複数の場合でも1つとして数えたいのです。
>なので、選択フィルタによって抽出されたリストの中に、店舗が何店舗あるかを
>取得したいのです。

では、テーブルのsu1〜su3には表示されている値(社員名称)を実際に格納するしか
ないかと...
※Filterはフォームの見た目(社員名称)を充てようとするので

テーブルのルックアップを指定で「連結列」を「2」に、同様にフォーム各コントロ
ールの連結列も「2」にしてください。
但し、テーブルのルックアップを指定を変更した段階で既に入っている値は社員CDと
なってますので「社員名称」に変える必要があります。

それとコード最後の方での
Me!text_店舗数 = obj!完了予定店舗数
の「完了予定店舗数」は「完了予定数」だと思います。

また、LOOKUPという名のフォーム名は止めた方がいいです。
同名の関数がありますので…
※参照URL
 http://ww3.tiki.ne.jp/~kaya/Ac_tips.html#Tips0_001
・ツリー全体表示

【5450】Re:帳票フォーム上のコンボボックスでのフ...
質問  なおなお  - 05/6/21(火) 14:56 -

引用なし
パスワード
   クロ様

>エラー直後のフォームをデザインビューで開いてプロパティの
>フィルタを確認してください。
>どの様になってますか?

((Lookup_SU2.社員名称="山田"))
クロ様の言われるとおり、社員CDに対し社員名称でフィルタをかけようとしています。

>レコード移動時のコードは捨てて
>単にフォームヘッダのtext_店舗数のコントロールソースに
>=Count(*)
>ではダメなのでしょうか?

これですと、選択フィルタによって抽出されたレコード数になってしまいます。
抽出された店舗には同名の物があり、複数の場合でも1つとして数えたいのです。
なので、選択フィルタによって抽出されたリストの中に、店舗が何店舗あるかを
取得したいのです。
・ツリー全体表示

【5449】Re:帳票フォーム上のコンボボックスでのフ...
回答  クロ  - 05/6/21(火) 14:33 -

引用なし
パスワード
   >ルックアップの指定は
>値集合ソース「社員テーブル」
>連結列「1」
>列数「3」
>列幅「0cm;2cm;2cm」
>リスト行列「40」
>リスト幅「自動」
>になっております。
>
>社員テーブルの構成は
>社員CD|社員名称|所属
>となっており、すべてテキスト型になっております。

ということはsu1〜su3に実際に格納されている値は
連結列が「1」となっているため、社員CDが入っています。
※見た目は社員名称が表示されています。

エラー直後のフォームをデザインビューで開いてプロパティの
フィルタを確認してください。
どの様になってますか?
社員CDのあるフィールドに対して社員名称をフィルタしろという風に
なっていませんか?
その所為だと思います。

レコード移動時のコードは捨てて
単にフォームヘッダのtext_店舗数のコントロールソースに
=Count(*)
ではダメなのでしょうか?
・ツリー全体表示

【5448】Re:帳票フォーム上のコンボボックスでのフ...
質問  なおなお  - 05/6/21(火) 14:09 -

引用なし
パスワード
   クロ様

>このsu1〜su3のデータ型とテーブルを開いたときに入っているもの
>はどんなものになってますか?
>ルックアップを指定しているようでしたらその詳細を教えてください。

su1〜su3のデータ型はテキスト型でルックアップを指定しております。
もともとsu1〜su3には社員CD(4桁の数字)が入っており、
そこにルックアップで社員テーブルを設定しております。

ルックアップの指定は
値集合ソース「社員テーブル」
連結列「1」
列数「3」
列幅「0cm;2cm;2cm」
リスト行列「40」
リスト幅「自動」
になっております。

社員テーブルの構成は
社員CD|社員名称|所属
となっており、すべてテキスト型になっております。
・ツリー全体表示

【5447】Re:帳票フォーム上のコンボボックスでのフ...
発言  クロ  - 05/6/21(火) 13:41 -

引用なし
パスワード
   >レコードソースとなるテーブルの構成は
>ID|店舗|su1|su2|su3|・・・・
>と言う具合になっておりまして、店舗には店舗名がテキストで
>su1〜su3はコンボボックスで社員テーブルとリンクされております。

このsu1〜su3のデータ型とテーブルを開いたときに入っているもの
はどんなものになってますか?
ルックアップを指定しているようでしたらその詳細を教えてください。
・ツリー全体表示

【5446】Re:帳票フォーム上のコンボボックスでのフ...
質問  なおなお  - 05/6/21(火) 13:11 -

引用なし
パスワード
   クロ様

>う〜ん構成が見えない...

わかりづらい説明で申し訳ありません。

>選択フィルタとはツールバー(あるいは右クリックで出るもの)の何れでしょうか?
>VBAを利用しているのでしょうか?

選択フィルタは、ツールバーにある上戸に雷の様なマークのボタンの事です。
そのツールバーの選択フィルタを使って、VBAでSQL文のwhere句を作って
選択されたリストの店舗数をフォームヘッダのテキストボックスに
表示したいと考えております。

フォームのレコード移動時のイベントに記述してある
VBAは下記のようになっています。
−−−−−−−−−−−−−−−−−−−−−−−−−−
  Dim obj As New ADODB.Recordset

  Dim db    As DAO.Database
  Dim QDef   As DAO.QueryDef
  Dim SQL    As String
  Dim SQLfilter As String

  Set db = CurrentDb
  
  SQL = ""
  SQLfilter = ""
  
  SQLfilter = Me.Filter
  
  SQL = "SELECT Count(*) AS 完了予定数"
  SQL = SQL & " FROM [select 完了予定.店舗"
  SQL = SQL & " FROM 完了予定"
  If SQLfilter <> "" Then
    SQL = SQL & " where " & SQLfilter
  End If
  SQL = SQL & " GROUP BY 完了予定.店舗]. AS 完了予定;"
  
  Set QDef = db.QueryDefs("完了予定クエリ")
  QDef.SQL = SQL
  Set QDef = Nothing
  Set db = Nothing
 
  obj.OPEN "完了予定クエリ", CurrentProject.Connection, adOpenStatic
  Me!text_店舗数 = obj!完了予定店舗数
  obj.Close
−−−−−−−−−−−−−−−−−−−−−−−−−−

>フォームの既定のビュー
>レコードソースとなるテーブル・クエリの構成

レコードソースとなるテーブルの構成は
ID|店舗|su1|su2|su3|・・・・
と言う具合になっておりまして、店舗には店舗名がテキストで
su1〜su3はコンボボックスで社員テーブルとリンクされております。
このsu1〜su3のコンボボックスで社員を選択フィルタで抽出し、その時の店舗を
グループ化した件数を取得したいと考えております。

>条件を入れるテキストボックスなどはフォームのどの位置にありますか?

条件を入れるテキストボックスは存在しておりません。
選択フィルタで選択されるのみの条件です。
あ、仮にSQL文を表示させるテキストボックスはフォームヘッダにあります。
・ツリー全体表示

【5445】Re:帳票フォーム上のコンボボックスでのフ...
発言  クロ  - 05/6/21(火) 12:32 -

引用なし
パスワード
   う〜ん構成が見えない...
選択フィルタとはツールバー(あるいは右クリックで出るもの)の何れでしょうか?
VBAを利用しているのでしょうか?

フォームの既定のビュー
レコードソースとなるテーブル・クエリの構成
条件を入れるテキストボックスなどはフォームのどの位置にありますか?

Me.FilterにはSQL分の内、WHERE句以降しか入らないと思いますが?
・ツリー全体表示

【5444】Re:帳票フォーム上のコンボボックスでのフ...
質問  なおなお  - 05/6/21(火) 12:02 -

引用なし
パスワード
   クロ様

>そうですか?そのコンボのコントロールソースは何になってますか?

そのコントロールソースは「SU2」です。

>それと「Lookup_SU2」ってなんでしょ?

「LOOKUP_SU2」と言うのは、帳票フォームのSU2と言うコンボボックスを
選択フィルタを使って抽出したときに、Me.Filterに代入されるSQL文です。
・ツリー全体表示

【5443】Re:帳票フォーム上のコンボボックスでのフ...
回答  クロ  - 05/6/21(火) 11:47 -

引用なし
パスワード
   そうですか?そのコンボのコントロールソースは何になってますか?
それと「Lookup_SU2」ってなんでしょ?
・ツリー全体表示

【5442】Re:帳票フォーム上のコンボボックスでのフ...
発言  なおなお  - 05/6/21(火) 11:35 -

引用なし
パスワード
   クロ様

お返事ありがとうございます。

>コンボボックスの値集合ソースを
>SELECT 社員名称 FROM 社員テーブル;
>として
>列数:1
>連結列:1
>としてみてはどうでしょ?

教えていただいたように設定してみましたが、
社員CDの表示に変わりはありませんでした。
・ツリー全体表示

【5441】Re:EXCELのグループ化を解除できます...
回答  小僧  - 05/6/21(火) 9:39 -

引用なし
パスワード
   ▼bejikeni さん:
おはようございます。

昨日のコードの

>        Debug.Print Sh.Name

のところを
         Sh.Ungroup

で解除できそうです。

再びグループ化するには、グループに属していたテキストボックスに対して
「Regroup」メソッドでできる模様です。
・ツリー全体表示

【5440】Re:フィールドデータの並べ替え
お礼  さつき  - 05/6/21(火) 9:32 -

引用なし
パスワード
   小僧 さん、ありがとうございます。見直してみます。
・ツリー全体表示

【5439】Re:帳票フォーム上のコンボボックスでのフ...
発言  クロ  - 05/6/21(火) 8:38 -

引用なし
パスワード
   >帳票フォームのコンボボックスをコントロールの種類の変更でテキストボックスに
>すると選択フィルタは使えるようになって店舗数カウントも取得できるんですが、

コンボボックスの値集合ソースを
SELECT 社員名称 FROM 社員テーブル;
として
列数:1
連結列:1
としてみてはどうでしょ?
・ツリー全体表示

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