SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

Accessのデータベースを帳票化する-クエリ結果によって値を入れ替える

クエリ結果によって帳票のタイトルを入れ替える

  • このエントリーをはてなブックマークに追加

コード全文

Visual Basic
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  Dim sqlstr As String

  sqlstr = "SELECT 製品一覧.メーカー, 製品一覧.製品名, " & _
             "製品一覧.カラー FROM(製品一覧)" & _
             " WHERE ((製品一覧.メーカー)='" & Me.ComboBox1.Text & "');"

  Me.C1Report1.DataSource.RecordSource = sqlstr

  'メーカーごとの説明文を作成-ここでは便宜上3つだけ作成
  Dim exp(2) As String

  exp(0) = "アメリカの老舗ギターブランド。エレキギターでは、" & _
           "レスポール、SG、アコースティックギターではハミング" & _
           "バード、ホロウ・ボディではES-335が代表的なギター。" & _
           "レスポールは、レッドツエッペリンのジミーペイジ、B'sの" & _
           "松本など数多くのプレーヤーに愛されてきました。"

  exp(1) = "日本を代表するギターメーカー。布袋寅泰やX-Japanの" & _
           "故Hide、L'Arc~en~Cielのkenなど、国内トップアー" & _
           "ティストが使用しているブランド。入門者用からプロフェッ" & _
           "ショナル用まで幅広いラインアップが揃っています。"

  exp(2) = "ポールリードスミスは、Gibson、Fenderに次ぐ第3のギター" & _
           "メーカーとして台頭してきました。" & _
           "高級な材料をふんだんに使用し、" & _
           "フレットにバードインレイをはめ込んだり、" & _
           "10TOPと呼ばれる木目の板を使うなど、見た目も華麗に" & _
           "作っていることが大きな特徴です。カルロス・サンタナが" & _
           "使用したことで世界的に有名になりました。"

  ' レポートヘッダにフィールドを追加します。
  Dim f As Field

  With Me.C1Report1.Sections(SectionTypeEnum.Header)

      '今あるヘッダーのFieldオブジェクトをコレクションから削除
      .Fields.Remove(0)

      '新しいタイトル用Fieldオブジェクトをメーカー名を付けて作成
      f = .Fields.Add("title", "製品情報 - " & _
                      Me.ComboBox1.SelectedItem, 100, 100, 8000, 1500)
      f.Font.Size = 24
      f.Font.Bold = True
      f.ForeColor = Color.Beige

      'すでに説明用のFieldオブジェクトがあれば削除する
      If .Fields.Count >= 2 Then
          .Fields.Remove("exp")
      End If
  End With

  'ComboBoxで選択されたメーカーごとに説明文を作成
  '-ここでは便宜上3つだけ作成
  Select Case Me.ComboBox1.SelectedIndex
      Case 0

          'ヘッダー「製品情報」の背景色とサイズを変更
          With Me.C1Report1.Sections(SectionTypeEnum.Header)
              .Height = 1000
              .Visible = True
              .BackColor = Color.BlueViolet

              '説明文用のフィールドの追加
              f = .Fields.Add("exp", exp(0), 100, 800, 8000, 1500)
              f.Font.Size = 12
              f.ForeColor = Color.Gold
          End With

      Case 1
          With Me.C1Report1.Sections(SectionTypeEnum.Header)
              .Height = 1500
              .Visible = True
              .BackColor = Color.PeachPuff

              '説明文用のフィールドの追加
              f = .Fields.Add("exp", exp(1), 100, 800, 8000, 1500)
              f.Font.Size = 12
              f.ForeColor = Color.Olive

              'タイトル文字の色を入れ替える
              .Fields("title").ForeColor = Color.Blue
          End With

      Case 2
          With Me.C1Report1.Sections(SectionTypeEnum.Header)
              .Height = 1500
              .Visible = True
              .BackColor = Color.Chocolate

              '説明文用のフィールドの追加
              f = .Fields.Add("exp", exp(2), 100, 800, 8000, 1500)
              f.Font.Size = 12
              f.ForeColor = Color.Moccasin

              'タイトル文字の色を入れ替える
              .Fields("title").ForeColor = Color.LimeGreen
          End With

      Case Else
          With Me.C1Report1.Sections(SectionTypeEnum.Header)
              .Height = 800
              .BackColor = Color.DarkSeaGreen
               '説明文用のフィールドの追加
              f = .Fields.Add("exp", "作業中・・・", 100, 800, _
                              8000, 1500)
          End With
  End Select

  Me.C1PrintPreviewControl1.Document = Me.C1Report1.Document
  Me.C1PrintPreviewControl1.Invalidate()
End Sub
C#
private void button2_Click(object sender, EventArgs e)
{
  String sqlstr;

  sqlstr = "SELECT 製品一覧.メーカー, 製品一覧.製品名, " +
           "製品一覧.カラー FROM(製品一覧)" +
           " WHERE ((製品一覧.メーカー)='" + ComboBox1.Text + "');";

  c1Report1.DataSource.RecordSource = sqlstr;

  //メーカーごとの説明文を作成-ここでは便宜上3つだけ作成
  String[] exp = new String[3];

  exp[0] = "アメリカの老舗ギターブランド。エレキギターでは、" +
           "レスポール、SG、アコースティックギターではハミング" +
           "バード、ホロウ・ボディではES-335が代表的なギター。" +
           "レスポールは、レッドツエッペリンのジミーペイジ、B//sの" +
           "松本など数多くのプレーヤーに愛されてきました。";

  exp[1] = "日本を代表するギターメーカー。布袋寅泰やX-Japanの" +
           "故Hide、L//Arc~en~Cielのkenなど、国内トップアー" +
           "ティストが使用しているブランド。入門者用からプロフェッ" +
           "ショナル用まで幅広いラインアップが揃っています。";

  exp[2] = "ポールリードスミスは、Gibson、Fenderに次ぐ第3のギター" +
           "メーカーとして台頭してきました。高級な材料をふんだんに" +
           "使用し、フレットにバードインレイをはめ込んだり、" +
           "10TOPと呼ばれる木目の板を使うなど、見た目も華麗に" +
           "作っていることが大きな特徴です。カルロス・サンタナが" +
           "使用したことで世界的に有名になりました。";

  // レポートヘッダにフィールドを追加します。
  Field f ;

  Section s;
  s = c1Report1.Sections[SectionTypeEnum.Header];

  //今あるヘッダーのFieldオブジェクトをコレクションから削除
  s.Fields.Remove(0);

  //新しいタイトル用Fieldオブジェクトをメーカー名を付けて作成
  f = s.Fields.Add("title", "製品情報 - " +
                  ComboBox1.SelectedItem, 100, 100, 8000, 1500);
  f.Font.Size = 24;
  f.Font.Bold = true;
  f.ForeColor = Color.Beige;

  //すでに説明用のFieldオブジェクトがあれば削除する
  if(s.Fields.Count >= 2){
      s.Fields.Remove("exp");
  }
        
  //ComboBoxで選択されたメーカーごとに説明文を作成
  //-ここでは便宜上3つだけ作成
  switch(ComboBox1.SelectedIndex){
       case 0:
           //ヘッダー「製品情報」の背景色とサイズを変更
           s.Height = 1000;
           s.Visible = true;
           s.BackColor = Color.BlueViolet;

           //説明文用のフィールドの追加
           f = s.Fields.Add("exp", exp[0], 100, 800, 8000, 1500);
           f.Font.Size = 12;
           f.ForeColor = Color.Gold;
           break;

       case 1:
           s.Height = 1500;
           s.Visible = true;
           s.BackColor = Color.PeachPuff;

           //説明文用のフィールドの追加
           f = s.Fields.Add("exp", exp[1], 100, 800, 8000, 1500);
           f.Font.Size = 12;
           f.ForeColor = Color.Olive;

            //タイトル文字の色を入れ替える
             s.Fields["title"].ForeColor = Color.Blue;
           break;

       case 2:
           s.Height = 1500;
           s.Visible = true;
           s.BackColor = Color.Chocolate;

           //説明文用のフィールドの追加
           f = s.Fields.Add("exp", exp[2], 100, 800, 8000, 1500);
           f.Font.Size = 12;
           f.ForeColor = Color.Moccasin;

           //タイトル文字の色を入れ替える
           s.Fields["title"].ForeColor = Color.LimeGreen;
           break;

       default:
           s.Height = 800;
           s.BackColor = Color.DarkSeaGreen;

           //説明文用のフィールドの追加
           f = s.Fields.Add("exp", "作業中・・・", 100, 800, 
                            8000, 1500);
           break;
       }

  c1PrintPreviewControl1.Document = c1Report1.Document;
  c1PrintPreviewControl1.Invalidate();
}

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1815 2008/06/24 15:07

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング