初めてaccessデータベースを作る為、マニュアルを読んでもわからなかったので、初歩的な質問をさせてください。
顧客データを管理しているのですが、一つのテーブルを元に、データを管理しています。(氏名・住所・希望予算・連絡先・顧客ランクなど)
それをレポート出力するにあたって、ソート(並べ替え)をかけるのですが、時と場合によって、「今日は、顧客来店日付順」「今日は担当者別」「今日は予算別」という風にソートの基準が違います。
レポートの雛型は作成してあるのですが、それは日付順でしか並べ替えできません。
任意に、並べ替えの基準を変えて並べ替えをし、既存のレポートに出力することはできるのですか?
それとも、並べ替えをするたびにレポート書式をデザイン作成しなくてはいけないのですか?
初心者なので、なるべく簡単な方法があるとよいのですが・・・。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

いろいろテクニックを駆使すればもっと効率良く作れますが、初心者だとおっしゃるので手間はかかりますが一番簡単な作成方法をお教えします。

この作成方法だとフォームを一つ、選択クエリーを3つ、レポートを3つ作成する必要があります。まず始めにフォームにラジオボタンを3つ作り、それぞれラベルで「顧客来店日付順」「担当者別順」「予算別順」と明示します。次に各ソート順でクエリーを3つ作り、そのクエリーを基にしたレポートも3つ作ります。フォームにVBA(コード)でIF文かSELECT文で「顧客来店日付順」ラジオボタンを選択したら顧客来店日付順専用のレポートを出力させ、「担当者別順」を選択したら担当者別順専用のレポートを出力する・・・という風にします。レポートのレイアウトが全く一緒でしたらレポートを一個作ってそれを二回コピーすれば簡単に複数枚できます。分かりやすく書いたつもりですけどこんな感じで作れば一日で出来ると思います。
    • good
    • 0

わたしもそれほど詳しい訳ではないのですが・・・・



時と場合によってソートする項目を変えたいのですよね?
それでしたら、クエリーを使ったらどうでしょうか?
テーブル作成クエリーを3パターン作ります。
「顧客来店日付に並替えたテーブルを作成するクエリー。」
「担当者別に並替えたテーブルを作成するクエリー。」
「予算別に並替えたテーブルを作成するクエリー。」
それを、モジュールかマクロで条件を指定して呼び出せばいいと思います。
そこで作成したワークテーブルをレポートで使えばOKだと思います。
もっとスマートなやり方があるのかもしれませんけど、
仕事ではクエリーをよく使っているので、これしか思いつきませんでした(笑)
参考までに・・・・。

ざっとしか説明していないので、わからないことなどがありましたら、
補足していただければ付け足します。
    • good
    • 0

ご質問のように、並び替えを動的にしたいなら、プロパティの「並べ替え」の使い方を調べると良いと思います。



例えば、レポートを呼び出すためのフォームをつくり、並び替えの種類(yukakさんの例なら「顧客来店日付」「担当者別」「予算別」)のコンボボックス(リストでも、ラジオボタンでもOK。)と、レポートを表示するボタンを作ります。
このときに、コンボボックスは、並び替えのキーになるフィールド名だとらくちんです。例として、フォームとコンボボックスに以下のようにつけたとします。

フォームの名前:F_並べ替え選択
コンボボックスの名前:C_ソートキー

この場合だったら、レポートの「イベント」の「開く時」に、マクロかプロシージャのどちらかで、「並べ替え」プロパティに「form_F_並べ替え選択.C_ソートキー」を入れてあげる必要があります。

プロシージャなら、こんな感じです。

----------------------------------------------
Private Sub Report_Open(Cancel As Integer)

Me.OrderBy = Forms![F_並べ替え選択]![C_ソートキー]

End Sub
-----------------------------------------------

こんなんで参考になりますか?
もし、「?」なところがあったらまた。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qテーブル入れ子にしたらNNではダメ?

赤い背景画像を使ったHTMLにテーブルを3個入れ子で載せました。
下のテーブルのセルに白色、中のテーブルのセル色にグレー、一番上のテーブルのセルに白色を指定しました。

そこへラジオボタンをつけたのですが、本来、枠がない丸いボタンのところに赤の枠ができてしまいます。
IEでは問題ないのですが、NN4.7で確認したらこうなっていました。

デザインを変えずに回避する方法があったら教えてください。
また、NN6.*~だったらOKということはありますか?

Aベストアンサー

こんにちは!

<input type="radio" name="address" value="menber" checked style="background-color:#FFFFFF;">

と style="background-color:#FFFFFF;" を追加してください。

NN6は分かりませんが4.7と7で確認しました。

Mac 側は確認していません・・。

QタイトルセルをWクリックする度にソート方法を昇順、降順切り替えてソートしたいのですが・・・

よろしくお願いします。いつもgooの皆さんには大変お世話になっています
以下のマクロは、セル$B$14がWクリックされたら、 $B$14の左1文字を判断して
ソートするマクロです

gooの皆さんに教えていただいたマクロを一部改良しています
例 $B$14の左1文字は↓or↑で ↓タイトル のようになっています

このマクロを次のように手直ししたいのですが、どなたか教えてください

1、↓タイトル の時にWクリックしたら タイトルが ↑タイトル になって降順でソートする
2、↑タイトル の時にWクリックしたら タイトルが ↓タイトル になって昇順でソートする

1と2をWクリックする度に切り替えるということはフラッグ(スイッチ?)を使うのでしょうか
であれば、どこか、特定のセルをひとつ使って、そのセルに現在のフラッグ(スイッチ?)を
書き込むのでしょうか?
マクロをどう手直しすればよいでしょうか?
どなたか教えてください

以下が現状のソートマクロです

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Address = "$B$14" Then
'Cancel = True
    'Cancel=True を加えると、オリジナルの動作(セル内編集)をキャンセル
'以後はマクロが終了してもダブルクリックで編集モードに入ることは不可
Dim Skey As Integer
Dim SortArea As String 'ソート範囲

SortArea = "B15:CT50" 'ソート範囲

Select Case Left(Target.Value, 1)
Case "↓"
Skey = 1
Case "↑"
Skey = 2
Case Else
Exit Sub
End Select

Range(SortArea).Sort _
Key1:=Range("B15"), _
Order1:=Skey, _
Header:=xlNo, _
Orientation:=xlTopToBottom
Cancel = True
'xlAscendingまたは1  昇順
'xlDescendingまたは2 降順
'1や2の数値でもどっちでもよい
'xlTopToBottom 省略可能
End If
End Sub

よろしくお願いします。いつもgooの皆さんには大変お世話になっています
以下のマクロは、セル$B$14がWクリックされたら、 $B$14の左1文字を判断して
ソートするマクロです

gooの皆さんに教えていただいたマクロを一部改良しています
例 $B$14の左1文字は↓or↑で ↓タイトル のようになっています

このマクロを次のように手直ししたいのですが、どなたか教えてください

1、↓タイトル の時にWクリックしたら タイトルが ↑タイトル になって降順でソートする
2、↑タイトル の時にW...続きを読む

Aベストアンサー

こんばんは!

他の方がお考えになったコードに手を加えるのは本意でないので、
当方なりにやってみました。
今回の場合はフラグは考えなくて良いと思います。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim str As String, myArea As Range
With Target
If .Address = "$B$14" Then
Cancel = True
str = Left(.Value, 1)
Set myArea = Range("B15:CT50")
If str = "↑" Then
myArea.Sort key1:=Range("B15"), order1:=xlAscending, Header:=xlNo
.Value = Replace(.Value, str, "↓")
Else
myArea.Sort key1:=Range("B15"), order1:=xlDescending, Header:=xlNo
.Value = Replace(.Value, str, "↑")
End If
End If
End With
End Sub

こんな感じでよいのでしょうか?m(_ _)m

こんばんは!

他の方がお考えになったコードに手を加えるのは本意でないので、
当方なりにやってみました。
今回の場合はフラグは考えなくて良いと思います。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim str As String, myArea As Range
With Target
If .Address = "$B$14" Then
Cancel = True
str = Left(.Value, 1)
Set myArea = Range("B15:CT50")
If str = "↑" Then
myArea...続きを読む

QNN4.7 テーブルの背景を表示出来ますか?

至急教えて欲しいのですが、ネットスケープ4.7でhtmlを確認中ですが。
テーブルへ背景を埋め込むと表示されないようです。
この現象は、NN4.7では無理なのでしょうか?
どなたか助けてくださいm(_ _)m

Aベストアンサー

NN4.7では <table bgcolor="~"> や <table background="~"> は正式にサポートされています。
(Win. Mac. 共にNN4から正式サポート)

但し、NNの仕様でテーブルの各セル内が背景以外何もない場合は背景が表示されません。

おそらく、背景が表示されていない部分は、文字も画像も入れていないのではありませんか?

そのときには、各空白のセルに相当するソース部位に「&nbsp;」(&は実際には半角です)を記述しておきます。
「&nbsp;」(&は実際には半角です)は、空白を表す特殊な記号で、ブラウザには表示されません。

QA行に今日の日付もしくはそれ以下(今日より前の日付)を表示させたい。 エクセル 関数

A行に今日の日付もしくはそれ以下を表示させたいのですが、関数が組めずに困ってます。

  A  B   C   D   E  F
1    5/28 5/29      5/1
2       5/29        5/2
3           5/30    5/2
        ↓

今日が5/30だった場合
  A   B   C   D   E   F
1 5/29 5/28 5/29      5/1
2 5/29     5/29         5/2
3 5/30         5/30     5/2
という風な感じで表記させたいのですが、A列にif関数でやろうとしたんですが、できませんでした。
ご教示宜しくお願いいたします。

Aベストアンサー

確認しますが、B列には5/28、C列には5/29 … のように必ず順番に入っているのでしょうか?

QIE6/NN7.1のテーブルのheight="100%"

テーブルの高さの指定 height="100%" なんですが、
IE6とNN7.1で100%で表示されません。

下記の記述に間違いはありますでしょうか?
もしかしたら初歩的な問題なんでしょうか?


ちなみにIE5.5 MacのIE5.2では表示されました。
困っています。
宜しくお願いいたします。

ーーーーーーーーーーーーーー
<table border="0" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td valign="top">上</td>
</tr>
<tr>
<td valign="bottom">下</td>
</tr>
</table>
ーーーーーーーーーーーーー

Aベストアンサー

HTML4.01の規格(仕様)では、tableに使えるアトリビュートは、summary、align、widthです。
heightが有効になるほうが特殊だと思ったほうがよいとおもいます

QExcelの並べ替え後のデータを日付順にする方法

仕事で使うためExcelで出納帳を作っております。A列に出入金の目的分類をBに日付5月1日なら5.1と入れて、Cは内容、D以降が入金額、出金額、差引残高となっている簡単な出納帳なのですが、年度末に分類ごとの並べ替えをした時に、各分類ごとのまとまりの中が日付順になるように、データ並べ替え設定をしますが、日付順が、4月から始まらずに、1月からはじまるのですが、年度ごとなので、4月から始めて、3月で終わるように並べ替えできる方法がありますか?

Aベストアンサー

並べ替えの「優先されるキー」は3番目まで登録できますから、
1列挿入して「年」を入れ
「分類」「年」「日付」の順番で「優先されるキー」を設定してはいかがでしょう。

QNNでテーブルの枠線(BORDER)の設定は?

NN6です。
BORDERを使用したいのですが、NNではうまくいきません。
<TABLE>タグにあてはめるとだめだときいたので、TDにあてはめようとしているのですが…。

HEAD内で
TDにBORDER-STYLE="SOLID; BORDER-COLOR:GRAY;"
としました。これをTD CLASS=***
としているのですが、一向に線は出てきません。
どのように直せばいいのでしょうか?

Aベストアンサー

とりあえずダブルクォーテーションは不要なので削除しましょう。

BORDER-STYLE=SOLID; BORDER-COLOR:GRAY;

それでも出なかったらボーダーの太さも明記しておきましょう。

BORDER-STYLE=SOLID; BORDER-COLOR:GRAY;BORDER-WIDTH:1pt;

Qエクセルで、1つの列で文字(降順&優先順位1)と日付(昇順&優先順位2)の並べ替えはできますか?

エクセル(97)で、1つの列で文字(降順&優先順位1)と日付(昇順&優先順位2)の並べ替えはできますか?

例えば、C列に「2004/5/18~2004/8/10」までの日付と「予定」という文字列がありましたら、文字列(予定)を上にくるように並べ替えて、2番目の優先順位の日付は「古い順(昇順)」に並べていきたいのです。。

やりかたをご存知のかた、いらっしゃいましたらよろしくお願いします

Aベストアンサー

まず、全体を選択して降順で並べ替えます。
文字列が上に来ると思うので、次に下に来た日付部分をすべて選択します。
そして昇順で並べ替えて下さい。
これで大丈夫かと。

QIE(5.5)とNN(4.7)のフォントサイズについて。

フォントサイズがデフォルトのままだと、IE(5.5)とNN(4.7)とではフォントサイズが違うのです。
IEの方でフォントサイズを「小」にするとNNと丁度良いサイズになるので、
IEでアクセスしたときには強制的にフォントサイズを「小」に変更することなど出来ませんでしょうか?
CSSで「12px」とかにしたんですけど、やはりIEでサイズが「中」になっていると
微妙にサイズが違ってしまうのです。
また、テーブル内のフォントのサイズも同じように変更したいのでNNに対しては融通が利かないのです。
なにとぞお知恵をお貸しくださいませm(_ _)m

Aベストアンサー

これはJavaScriptとの併用である程度解決つきます。
ブラウザによって使用するCSSファイル(この場合は外部ファイルにします。拡張子『.css』)を用意し、<head>~</head>タグ内にブラウザの判別のスクリプトを書く形です。

IE用とNN用で別々のCSSを用意する事によって、かなり近い状態で表示されるはずです(それでもWindows/Mac、他のバージョンを考えると完全に一致させる事は至難の技ですが・・・)。

JavaScriptでのブラウザ判別については、ここの『JavaScirpt』の方で見つかったので、そのリンクを。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=186603

Qexcelで年月日順から月日順に並び替え

顧客情報に誕生日を持っているのですが、誕生日順に並び替えると年月日順になり結果として年齢順になってしまいます。これを1月1日から12月31日までの月日順に並び替えたいのですがどうしたらいいでしょうか。
よろしくお願いします。

Aベストアンサー

簡単な方法を記述します

考え方
 列を1つ追加し今年に全て変換し並び替えをする
記述
 =DATE(2002,MONTH(B1),DAY(B1))
説明
 DATE(年,月,日)・・・シリアル値変換
 MONTH() ・・・月抽出
 DAY()  ・・・日抽出
です
なにかあれば補足して下さい


人気Q&Aランキング

おすすめ情報