人に聞けない痔の悩み、これでスッキリ >>

教えてください。
Accessで資格取得一覧を作成しようと考えています。
レコードは1レコード/社員です。
同じ資格の取得者については、名前のみ表示させようとしています。
1レコード1行では見た目も良くないですし、スペースももったいないので
1行に複数のレコード(氏名)を表示させたいのですが、その方法が
わかりません。
仕事で期限もあるので結構あせっています。
どなたか詳しい方、お力添えを宜しくお願いします。
バージョンはAccess97です。

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

A 回答 (1件)

メニューの「ファイル」→「ページ設定」を選択し、


「レイアウト」タブで「列数」を2以上に設定して下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ページやレポートのプロパティの設定ばかりを探していました。
思った通りのレポートができました。感謝します。

お礼日時:2002/04/10 18:48

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

このQ&Aを見た人はこんなQ&Aも見ています

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

Q[ACCESS][レポート]2列に印刷がしたい

ACCESSのレポートで、ひとつのテーブルの内容を、2列に印刷することは可能でしょうか?
たとえばA4ヨコの用紙で、印刷する項目が3つしかなかった場合、右に余白ができてしまうので、印刷する項目が用紙の下までいったら、次に右上からもう一列印刷をする、というようなことを実現したいのです。

Aベストアンサー

先日同じ質問に回答しました。

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

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QAccessでレポート内の繰り返しレコードの行数を固定したいです。

Accessでレポート内の繰り返しレコードの行数を固定したいです。

Access2007を使っています。

社内のフォーマットに合わせた物品購入申請書のようなものを
Accessのレポート機能を使って印刷したいと思っています。

大きく2つのテーブルから構成されます。

 (申請書テーブル)
  1文書に1レコードが該当するもの
  書類番号、申請日や申請者名、購入目的等が入ります。

 (購入物品テーブル)
  1文書に複数のレコードが該当するもの
  購入する物品の名前や金額等が入ります。
  書類番号を外部キーとして申請書テーブルとリンクします。


レポート機能で、この二つのテーブルを対象として、
(正確には、申請書テーブルはフォーム上で開いているレコードのみを対象と
 するために、クエリを仲介して)
購入物品は繰り返しにするようにすることで、ひととおり形にはなったのですが、
1つうまくいかないことがあります。

社内のもともとの手書き用フォーマットには、購入物品の記入枠が20行あります。
これは多めにつくってあるので、当然購入物品数が20以下の場合は、残りの行は
空白になっています。
しかし、Accessのレポートで作ったものは空白行がなく、おかげで購入物品件数
により「詳細」と「フッタ」の間の不自然な空白が広くなったりします。

フッタと言っても、内容的には、「上記物品の購入云々~、お願い致します。」
とかサインするエリアとかですので、繰り返しが終わったらすぐに開始をして
ほしいのです。

購入物品の数に関わらず全体の行数を20に固定する方法はありますでしょうか?

Accessでレポート内の繰り返しレコードの行数を固定したいです。

Access2007を使っています。

社内のフォーマットに合わせた物品購入申請書のようなものを
Accessのレポート機能を使って印刷したいと思っています。

大きく2つのテーブルから構成されます。

 (申請書テーブル)
  1文書に1レコードが該当するもの
  書類番号、申請日や申請者名、購入目的等が入ります。

 (購入物品テーブル)
  1文書に複数のレコードが該当するもの
  購入する物品の名前や金額等が入ります。
  書類番号...続きを読む

Aベストアンサー

レコードがない場合も用紙の最後まで罫線を出力する
http://hatenachips.blog34.fc2.com/blog-entry-17.html

レポートに関してはトップクラスの hatena さんのページです。

参考URL:http://hatenachips.blog34.fc2.com/blog-entry-17.html

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QAccess サブフォームでの選択行の取得

こんにちは。

Access初心者です。

サブフォームでテーブルの項目を表示させていますが、
選択された行を取得する方法はありますか?
サボフォームの下の方に現在選択されているレコード数が表示されてますが、その値でかまいません。

調べているのですが、なかなか検討がつきません。
宜しくお願い致します。

Aベストアンサー

フォーム名がフォーム1、サブフォームコントロールの名前がサブフォーム1だとすると、

Forms!フォーム1!サブフォーム1.Form.CurrentRecord

で取得できます。
(「Forms」と「Form」がありますのでご注意下さい)


また、フォーム1にコードを記述する場合であれば

Me!サブフォーム1.Form.CurrentRecord

サブフォーム1へのコード記述であれば

Me.CurrentRecord

という構文によっても、それぞれ取得が可能です。

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

Qアクセスのレポートのヘッダーを2ページ以降にもつけるには?

アクセスでスタッフの交通費の集計をしレポートに出力しています。1ページ目に所属部署、行き先などヘッダーがあります。2ページ目にも同様のヘッダーを入れたいのですが、どうすればいいのでしょうか?初歩的な質問ですいませんが、困っています。

Aベストアンサー

レポートヘッダーにヘッダーを設定しているとレポートの最初だけ表示されます。
所属部署・行き先等のヘッダーをページヘッダーに移動してレポートヘッダの高さを0にしてください。(レポートヘッダー部に表示するラベル等があればそれに合わせて高さを設定してください。)
そうすれば各ページにヘッダーが表示されます。
ページヘッダーにある各ヘッダーを移動後レポートヘッダー・フッターに何も表示するものがなければレポートヘッダー・フッターを削除してもかまいません。

QAccessのレポートで複数列の見出しについて

Accessのレポートで項目数は少ないが、データがたくさんあるため、見栄えを良くしようと、ページ設定のレイアウトで列数を2にして、次のようなレポートを作成したいのですが、

 住 所 | 氏 名 | | 住 所 | 氏 名 |
 埼 玉 | 田 中 | | 福 井 | 栗 田 |
 千 葉 | 石 井 | | 東 京 | 清 水 |
 青 森 | 吉 田 | | 栃 木 | 菊 池 |

 ページヘッダーに住所と氏名のラベルを配置しましたが、右側の列にはいきなりデータが表示されて、住所・氏名のラベルが表示されません。
 どうすれば、右側にも列見出しを表示できるでしょうか。      

Aベストアンサー

こんにちは!
ご質問の内容から私が思うことと#1、#2さんの
回答とは食い違いがあるように思います。

>ページ設定のレイアウトで列数を2にして、
>ページヘッダーに住所と氏名のラベルを配置しましたが、右側の列にはいきなりデータが表示されて、住所・氏名のラベルが表示されません。

私が思う解決方法は以下の通り。
1.ラベルの部分を横に並べます。
(以下のイメージ)

[ページヘッダ]
 住 所 | 氏 名 | | 住 所 | 氏 名 |
[詳細]
住所data |氏名data |

2.ページ設定のレイアウトで”実寸”のチェックをはずします。
3.”幅”の値を住所・氏名の左側の分を表示するのに必要な
値(約半分)に変更します。
4.プレビュー等を確認し、行列設定-列間隔を調整するか
右側のラベルの位置を調整します。

質問を取り違えている場合は無視してください(^_^;)

Qアクセスで#エラーを表示させない方法は?

アクセス2000を使用しています。フォームにテキストボックスを貼り付けて、計算式を入れています。計算できない数値になると、#エラーと表示されます。目障りなので、#エラー という表示を消したいのですが、どうしたらよろしいでしょうか?宜しくお願い申し上げ候。

Aベストアンサー

はじめは「IIF関数とIsError関数を使用して」と考えたものの、IIF関数は引数がエラーになった時点で
エラーが返されてしまう(=元の木阿弥)ので、どうしたものかと思ったのですが・・・
とりあえず、「見た感じ、何も表示されていないように見える」ということで、『条件付書式』での対応と
いうのはいかがでしょうか。

1)当該フォームをデザインビューで開く
2)当該テキストボックスを選択
3)メニューで「書式(O)→条件付き書式(D)」を選択
4)『条件付き書式設定』ダイアログが開くので、『条件1(1)』枠の左端にあるコンボボックスで「式」を選択
5)上記コンボボックスの隣が1つのテキストボックスになるので、そこに以下のような式を入力
 IsError([テキスト0])
 ※上記の式は当該テキストボックスの名前が「テキスト0」の場合です。
6)上記テキストボックスの下、右から2番目に「A」と表示された、文字色を指定するボタンがあるので、
 その左の小さな「▼」をクリックし、当該テキストボックスの背景と同じ色(既定では白のはず)を選択
7)『OK』ボタンをクリックしてダイアログを閉じる

・・・以上です。
これで、『テキスト0』の計算式がエラーになった場合は、文字色が背景と同じ色になるので、「#エラー」と
いう表示はされていないように見える、という状態にすることができると思います。

はじめは「IIF関数とIsError関数を使用して」と考えたものの、IIF関数は引数がエラーになった時点で
エラーが返されてしまう(=元の木阿弥)ので、どうしたものかと思ったのですが・・・
とりあえず、「見た感じ、何も表示されていないように見える」ということで、『条件付書式』での対応と
いうのはいかがでしょうか。

1)当該フォームをデザインビューで開く
2)当該テキストボックスを選択
3)メニューで「書式(O)→条件付き書式(D)」を選択
4)『条件付き書式設定』ダイアログが開くので、『条件1(1)』枠の...続きを読む

QACCESSで縦に並んだテーブルデータを横に並べることは出来ますか?

お世話になります。現在大量にデータを前に悩んでいます。

テーブルに以下のようなデータがあります。

| 薬剤名 | 効果 |
-----------------------
| A剤  | 頭痛 |
| A剤  |生理痛 |
| A剤  | 発熱 |
| B剤  | 歯痛 |
| B剤  |生理痛 |
| C剤  | 頭痛 |

これを、薬剤名ごとにまとめ効果を横へ並べる。

| 薬剤名 |効果1|効果2|効果3|効果4|
-------------------------------------------
| A剤  | 頭痛 |生理痛| 発熱 | |
| B剤  | 歯痛 |生理痛|   | |
| C剤  | 頭痛 |   |   | |

ことって出来るのでしょうか?
効果の数はいくつになるか分かりません。現在は最大7つですが、今後それ以上の物が出る可能性もあります。

ACCESSでは無理なことでしょうか?

また、ACCESSのバージョンは2002です。なお、ACCESSについては、使用法を含め初心者に毛が生えたくらいの知識しかありません。申し訳ありませんが「サル」にもわかるくらいの優しさでご指導願えれば幸いです。

よろしくお願いします。

お世話になります。現在大量にデータを前に悩んでいます。

テーブルに以下のようなデータがあります。

| 薬剤名 | 効果 |
-----------------------
| A剤  | 頭痛 |
| A剤  |生理痛 |
| A剤  | 発熱 |
| B剤  | 歯痛 |
| B剤  |生理痛 |
| C剤  | 頭痛 |

これを、薬剤名ごとにまとめ効果を横へ並べる。

| 薬剤名 |効果1|効果2|効果3|効果4|
-------------------------------------------
| A剤  | 頭痛 |生理痛| 発熱 ...続きを読む

Aベストアンサー

こういう場合は、<薬剤別効果一覧>などのテーブルを作成したらどうですか?

・<薬剤別効果一覧>テーブルをクリアする。
・<薬剤別効果情報>を取得する。
・<薬剤別効果一覧>テーブルに追加する。

一種の一時テーブルを作成するということです。
これですと、作成後は、いとも簡単に閲覧したりレポートに出力できます。

*少し、ADO を利用することになります。コードはサワリだけ。

薬剤名 効果総数 効果名_1 効果名_2 効果名_3
A剤   3    頭痛   生理痛  発熱

このように、<薬剤別効果一覧>テーブルにデータを登録するコードは以外と簡単です。

Private Sub コマンド_薬剤別効果一覧追加_Click()
  Dim isOK  As Boolean
  Dim strSQL As String
  
  isOK = CnnExecute("DELETE FROM 薬剤別効果一覧")
  If isOK Then
    strSQL = "INSERT INTO 薬剤別効果一覧 " & _
         "(薬剤名, 効果総数, 効果名_1, 効果名_2, 効果名_3)" & _
         " Values " & _
         "('A剤', 3, '頭痛', '生理痛', '発熱')"
    isOK = CnnExecute(strSQL)
    If isOK Then
      MsgBox "[薬剤別効果一覧] にデータを追加しました。"
    End If
  End If
End Sub

僅かに、CnnExecute()を自作ライブラリに追加するだけで、このように読めば判るコードが書けます。
これならば、質問者にとっても別に難しいことではないと思います。
SQL文は、Accessプロジェクトのそれですので Jetとは違うかも知れませんが基本は同じです。
課題は、strSQL の生成にあります。
ここが一つにハードルです。
まあ、それも含めて書くと、一つのプロシージャ全体を請け負うことになりますのでチョットです。

質問レベルからして、いずれ、この領域に踏み込む必要ありと感じましたので・・・。

Public Sub ErrMessage(ByVal CnnErrors As ADODB.Error, ByVal strSQL As String)
   MsgBox "ADOエラーが発生しましたので処理をキャンセルします。" & Chr$(13) & Chr$(13) & _
      "・Err.Description=" & CnnErrors.Description & Chr$(13) & _
      "・Err.Number=" & CnnErrors.Number & Chr$(13) & _
      "・SQL State=" & CnnErrors.SQLState & Chr$(13) & _
      "・SQL Text=" & strSQL, _
      vbExclamation, " ADO関数エラーメッセージ"
End Sub

Public Function CnnExecute(ByVal strSQL As String) As Boolean
On Error GoTo Err_CnnExecute
   Dim isOK As Boolean
   Dim cnn As ADODB.Connection
  
   isOK = True
   Set cnn = CurrentProject.Connection
   With cnn
     .Errors.Clear
     .BeginTrans
     .Execute strSQL
     .CommitTrans
   End With
Exit_CnnExecute:
On Error Resume Next
   cnn.Close
   Set cnn = Nothing
   CnnExecute = isOK
   Exit Function
Err_CnnExecute:
   isOK = False
   If cnn.Errors.Count > 0 Then
     ErrMessage cnn.Errors(0), strSQL
     cnn.RollbackTrans
   Else
     MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _
        vbExclamation, " 関数エラーメッセージ"
   End If
   Resume Exit_CnnExecute
End Function

こういう場合は、<薬剤別効果一覧>などのテーブルを作成したらどうですか?

・<薬剤別効果一覧>テーブルをクリアする。
・<薬剤別効果情報>を取得する。
・<薬剤別効果一覧>テーブルに追加する。

一種の一時テーブルを作成するということです。
これですと、作成後は、いとも簡単に閲覧したりレポートに出力できます。

*少し、ADO を利用することになります。コードはサワリだけ。

薬剤名 効果総数 効果名_1 効果名_2 効果名_3
A剤   3    頭痛   生理痛  発熱

この...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング