Access VBA質問箱 IV

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

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


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

【5641】Re:集計にて
質問  まるこ E-MAIL  - 05/7/19(火) 15:39 -

引用なし
パスワード
   ▼小僧 さん:
まるこ です。

ありがとうございます。
言われたとおりにコピーしましたが

コード 月名 F1 F2 F3 F4
1234  10月
3456  10月

上記のとおりでてきましたがFのところに日数が出ず
空白になっています。
すみませんがもう一度お教え願えませんでしょうか?
よろしくお願い致します。
・ツリー全体表示

【5640】Re:応答なしの表示がでる。
お礼  さつき  - 05/7/19(火) 15:19 -

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

ありがとうございました。教えて頂いたように ,0 をつけたら動きました。
・ツリー全体表示

【5639】Re:応答なしの表示がでる。
発言  小僧  - 05/7/19(火) 14:52 -

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

前回の投稿から色々勉強してみたところ
「Find」「Filter」等のメソッドは、データ量が多くなると
パフォーマンスが相当落ちるようです。
(膨大なデータを業務で扱っている方から情報を頂きました)

という事で回避方法として、

>rs2.Open "listyoko", cn, adOpenKeyset, adLockOptimistic

この時点で全てのレコードをオープンしていますが、
「rs1」のレコードが動く度に、Where条件をつけて「rs2」をその都度開いた方が
結果として高速に処理できるかと思われます。
・ツリー全体表示

【5637】Re:横から
発言  たん  - 05/7/19(火) 11:23 -

引用なし
パスワード
   日を文字列として、一列に表示するのであれば、

>クエリ2(クロス集計クエリ):

からクエリを作成し、クロス集計クエリを通常のクエリに
見せる事で、クロス集計結果の順フィールドを、個々の
フィールド名として使う事が可能になるので、
あとは、フィールドを&演算子で結合するだけ。

# クロス集計クエリからクエリを作ると、順フィールドは
# 数字のみのフィールド名として認識されてしまうので、
# クエリ作成時点で、別名に変えて置くこと。
# (やらないと、命名規則違反でクエリが誤動作するかも)
・ツリー全体表示

【5636】Re:横から
回答  たん  - 05/7/19(火) 10:22 -

引用なし
パスワード
   横から失礼。

テーブル構成自体に問題があるので、無理な処理が生じているのです。
順番を考慮した処理が必要なのであれば、月単位での処理順が必要です。

ID    コード     名     年月日   順
109    3401    カリナ    2005/10/07  1          
(以下略)

# クエリで順を出すことも可能だけど、面倒なのでパス。

クエリ1:
SELECT テーブル1.*, Format([年月日],"yyyy/mm") AS 年月, Day([年月日]) AS 日
FROM テーブル1;

クエリ2(クロス集計クエリ):
TRANSFORM First(クエリー1.日) AS 日の先頭
SELECT クエリー1.コード, クエリー1.名, クエリー1.年月
FROM クエリー1
GROUP BY クエリー1.コード, クエリー1.名, クエリー1.年月
PIVOT クエリー1.順;

で希望の形は出来そう。
・ツリー全体表示

【5635】Re:集計にて
回答  てっちゃん  - 05/7/19(火) 10:10 -

引用なし
パスワード
   ▼まるこ さん:
>
>希望レポート
>コード 3401
>
>10月 1 7 14 21
>11月 4 11 18 25
>.
>.

#横から失礼します。

レポートで良いのであれば、
メインレポートで、コードと月を表示し、
日にち部分をサブレポート化するというのは如何でしょう?

クエリー(レコードソース)をメイン用とサブ用で2つ
用意すれば出来ると思います。
・ツリー全体表示

【5634】Re:集計にて
回答  小僧  - 05/7/19(火) 9:09 -

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

クロス集計クエリを使ってみました。
元のテーブルをT_aaaとすると、

TRANSFORM Max(Day([日])) AS 日数
SELECT T_aaa.コード, Month([日]) & '月' AS 月名
FROM T_aaa
GROUP BY T_aaa.コード, Month([日]) & '月'
PIVOT "F" & DCount("*","T_aaa","[日] <=#" & [T_aaa].[日] & "# AND
    Month([日]) = " & Month([T_aaa].[日])) In ("F1","F2","F3","F4");


上記 SQL をクエリの SQL ビューに貼り付けて確認してみて下さい。

もっと複雑な処理(1週目は休みの場合は空白とか…)になりますと
VBAでの処理が必要になってくると思われます。
・ツリー全体表示

【5633】Re:クエリーで入金の消しこみ
発言  てっちゃん  - 05/7/16(土) 17:01 -

引用なし
パスワード
   ▼蘭 さん:
>参考に、初心者にお勧めな書籍には
>どんなのがありますか?

このように聞かれた時、私は
「本屋で立ち読みしなさい」と答えてます。

人によって、図が多く入ったものが好きだったり、
薄い本の方がやる気がでるとかいうのがあり、
また、私自身ネットで「お勧め」と言われていたのを
読んでみると、理解できなかったり(理解できるレベルに
達していない)するので。。。。。。。。。


本ではありませんが、一応
http://www.wanichan.com/pc/ac2000/
http://www.mahoutsukaino.com/
Ver2003ではありませんが、問題ないと思います。

がんばってください
・ツリー全体表示

【5632】Re:エクセルへのエクスポートで
お礼  かずえ  - 05/7/16(土) 15:59 -

引用なし
パスワード
   YU-TANG さん、ありがとうございます!!
言葉足らずですみませんでした。

C)のパターンで、過去ログを探したり本を読んだりしていたのですが、見つけられず
色々自分なりにやってたのですが、分からなかったので質問してしまいました。
教えていただいたもので一度やってみます!
取り急ぎお礼まで。


>A) 新規ブックの新規シートへ出力したいのか
>B) 既存ブックの新規シートへ出力したいのか
>C) 既存ブックの既存シートへ出力したいのか
>
>上記のどれを指しているのか明示すると、的確なレスが付きやすく
>なると思います。
>
>あと、探せば参考になる過去ログがあるかもしれません。
>たとえば↓とか。
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=4924;id=access
・ツリー全体表示

【5631】Re:集計にて
質問  まるこ E-MAIL  - 05/7/16(土) 14:27 -

引用なし
パスワード
   ▼小僧 さん:
ありがとうございます。

最終的にはレポートにて下記のようになればよいので
「,」でつなげるなくてもよいのです。
月に対して該当日数が表示できればよいのですが
レポートで4列で指定してもコードに対して月が1〜4と可変で出てくるので
該当月にたいして日数がうまく合致せず一致しません。

希望レポート
コード 3401

10月 1 7 14 21
11月 4 11 18 25
.
.

可変ですのでDAO等で1件ずつ処理していくしかないのでしょうか?。
DAOは、まだ詳しくはわからないので、もし他のやり方があればお教えいただければ助かります。
よろしくお願いします。
・ツリー全体表示

【5630】Re:クエリーで入金の消しこみ
お礼    - 05/7/16(土) 11:16 -

引用なし
パスワード
   返事遅くなりまして
すみませんでした。
そしてサポートしてくださって、ありがとうございます。

>私見ですが、書籍等を使って、それに載っている
>例題等を一度模倣していく事をお勧めします。

そうします。
参考に、初心者にお勧めな書籍には
どんなのがありますか?
よければ教えてください。
・ツリー全体表示

【5629】Re:エクセルへのエクスポートで
発言  YU-TANG  - 05/7/16(土) 11:01 -

引用なし
パスワード
   こんにちは、YU-TANG です。

> 「担当者別」テーブルを「集計」シートへエクスポート

A) 新規ブックの新規シートへ出力したいのか
B) 既存ブックの新規シートへ出力したいのか
C) 既存ブックの既存シートへ出力したいのか

上記のどれを指しているのか明示すると、的確なレスが付きやすく
なると思います。

あと、探せば参考になる過去ログがあるかもしれません。
たとえば↓とか。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=4924;id=access
・ツリー全体表示

【5628】Re:応答なしの表示がでる。
発言  小僧  - 05/7/15(金) 17:51 -

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

>rs2.Find "契約者 ='" & rs1![契約者] & "'"
>
>上のrs1![契約者] & "'"のところで、
>「コンパイルエラー 引数は省略できません」と出ます。
>
>どのようにしたらよいでしょうか?

こちらだとコンパイルエラーが発生しないんですよね…。
Helpを見ても省略可な引数ですし…。

>  rs2.Find "契約者 ='" & rs1![契約者] & "'"
→ rs2.Find "契約者 ='" & rs1![契約者] & "'",0

としても結果は一緒なのですが、コンパイルが通らないでしょうか?
・ツリー全体表示

【5627】Re:応答なしの表示がでる。
質問  さつき  - 05/7/15(金) 17:24 -

引用なし
パスワード
   ▼小僧 さん、てっちゃんさん:
お答えありがとうございます。

てっちゃんさんの言われたように応答なしでも動いているようなのですが、やはり最後まではたどり着いてくれませんでした。

そこで、
Findメソッドを使って、書き直してみましたが、

rs2.Find "契約者 ='" & rs1![契約者] & "'"

上のrs1![契約者] & "'"のところで、
「コンパイルエラー 引数は省略できません」と出ます。

どのようにしたらよいでしょうか?
・ツリー全体表示

【5626】エクセルへのエクスポートで
質問  かずえ  - 05/7/15(金) 17:23 -

引用なし
パスワード
   エクセルへのエクスポートで、ファイルのシート名まで指定してエクスポートするのはどうしたらいいのでしょうか?
例えば・・
「担当者別」テーブルを「集計」シートへエクスポート
・ツリー全体表示

【5625】Re:集計にて
発言  小僧  - 05/7/15(金) 17:20 -

引用なし
パスワード
   ▼まるこ さん:
可変であればDAO等で1件ずつ処理していくしかないと思われます。

上で

>一応結果は出せますが、2つのフィールドの値を1つのフィールドに
>「,」でつなげる事はデータベース上は余り好ましくないと思われます。

と書きましたが、1つのフィールドに入れる理由はあるのでしょうか?
・ツリー全体表示

【5624】Re:集計にて
質問  まるこ E-MAIL  - 05/7/15(金) 16:10 -

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

早速のご返事ありがとうございます。
「日」が月2回の固定ではなくて
可変でコードに対応してそれぞれ月別に1〜4日入ります。
その場合はどういうにすれば、よろしいでしょうか?
よろしくお願いいたします。
・ツリー全体表示

【5623】Re:(access)自分自身のパス
お礼  kaz  - 05/7/15(金) 15:58 -

引用なし
パスワード
   ▼MJM さん:
>こんにちは。
>
>CurrentProject.Path
>
>のことでしょうか。

ありがとうございました。
緊急で知りたい状況で、調べる手段がすぐに見つからなかった為、助かりました。
・ツリー全体表示

【5622】Re:(access)自分自身のパス
回答  MJM  - 05/7/15(金) 15:53 -

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

CurrentProject.Path

のことでしょうか。
・ツリー全体表示

【5621】(access)自分自身のパス
質問  kaz  - 05/7/15(金) 15:44 -

引用なし
パスワード
   access2000のマクロで、自分自身のパスを取得するにはどうすればよいでしょうか。
VBで言うところのApp.Path、excelでのThisWorkbook.Path に相当するものです。
宜しくお願いいたします。
・ツリー全体表示

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