• ベストアンサー

EXCELのデーターを同じようにACCESSで表示したい

EXCELからACCESSにデーターをインポートしたいのですが、そのEXCELのデーターは項目ごとに色を分けて表示しています。インポートしたデーターは必要項目をクエリで表示し、それをサブフォームで表示したいのですが、EXCEL同様色で項目分けしたいのです。 条件付書式は3つまでしか条件付けできず、3つ以上色で分けているのです。 今のACCESSではこのような表示は無理なのでしょうか。 ACEESSの2003を使っています。 ↑の方法がない場合、今まで使っているEXCELのデーターから日々インポートするしかないのでしょうか? 何か解決方法があれば教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.5

こんです~。#1です。 最初にOLE型について、説明しておきます。 (本当の話はAccessヘルプを読んだほうが正しいです) OLE型とは、映像や音楽のファイルをOLE(Object Linking and Embedding)と言われる型でデータを保持するフィールドです。Excel、Word等のファイル等も、ここで保持することが可能です。しかし、OLEはデータだけではなく、アプリケーション間のデータを行うための情報を保持するため、大体通常に保管したときの2~3倍のデータを保持することになります。 要するに、何でもデータにできるよ~って事ですね ここを踏まえて、 > →これがペイントブラシの絵の項目しかみつけられ > ません・・・。 それで、大丈夫です。同じものですから^^; > あとOLEサイズの設定をしたいのですが、その設 > 定がどこにあるのか・・・。 OLEサイズの設定? テーブル上の話であれば、基本的にありませんOLE型で1GByteまで保持できますが、保管するデータが極力小さいほうが、Access全体的なレスポンスがよろしいようです。 今回は、ビットマップを使用してますので、ペイントブラシ起動後、「変形」-「キャンバスの色とサイズ」で極力小さく訂正ください。今回はビットマップで例を出してますが、Excelのシェイプをコピー&ペーストで貼り付けてグラデーションとかも使用可能です。 フォーム上の話であれば、ドラッグして引っ張ればサイズは、いくつでも変わります。ただし、データ自体が大きく見えるわけではありませんので「連結オブジェクト」-「プロパティ」-「書式タブ」-「OLEサイズ:ストレッチ」に設定して、枠全体に描画します。 > この方法でサブフォームに表示した一覧の1行の色を > 変えるにはこれからまた方法があるのでしょうか? えっと、聞いている意味がよく理解できないのですが、連結OLEのコントロールサイズを、詳細一杯に広げれば1行丸々、塗ったように見えますが、こういう話ではなくて?って、コントロールを選択した状態で「書式」-「最背面へ移動」は必ず実施してくださいね。 そうしないと、データまで塗りつぶされますから^^; では、がんばってくださいね。

nnntttaaa
質問者

お礼

何度も本当に回答ありがとうございます できましたw。本当にありがとうございます。 やっと思い通りのデーターを作ることができました。 またACCESSのこと質問することがあると思いますが、そのときはまたアドバイス宜しくお願いします

その他の回答 (4)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.4

#1です。 > 私のレベルじゃちょっと理解できないみたいです・・・。 あら・・・じゃ、とりあえず手順を書いてみます。 あくまで参考例ですのでやって見れば、なんとなく理解できます。 1.テーブルを2個作ります。 テーブル名:Tbl_Color フィールド名:ID_Color 整数型、インデックス「はい(重複なし)」 フィールド名:OLE_Color OLEオブジェクト型 テーブル名:Tbl_Data フィールド名:A 整数型 フィールド名:A_ID_Color 整数型 2.色テーブルを作成します。 テーブル「Tbl_Color」に「ID_Color」を1~4まで追加、「OLE_Color」に右クリックで「OLEオブジェクト挿入」→「ペイントブラシ」で大体4つのレコードにそれぞれの色を付けます。 3.クエリーの作成します。 新規作成→SQLビューにして下記の「SELECT~;」を上書きして、保管します。 SELECT Tbl_Data.*, Tbl_Color.OLE_Color FROM Tbl_Data LEFT JOIN Tbl_Color ON Tbl_Data.A_ID_Color = Tbl_Color.ID_Color; 4.モジュールの作成します。 標準モジュールのところに下記のモジュールを書き込みます。 Function usUpdate(A As Control, A_Color As Control) As Boolean A_Color = ((Nz(A, 0)) Mod 4)+1 End Function 実際は、やりたい演算(条件)をここで設定します。 5.フォームの作成 3で作成したクエリーを元にフォームを作成します。 A A_ID_Color OLE_Color の3つを配置、そのうち「A」に割り当てたテキストボックスの名前を「Ctl_A」、「A_ID_Color」に割り当てたテキストボックスの名前を「Ctl_A_ID_Color」とします。 念のため、「A_ID_Color」、「OLE_Color」の割り当てたものを、「使用可能:いいえ」「編集ロック:はい」に変更。 「OLE_Color」を「最背面へ移動」を実施し、「OLEサイズ:ストレッチ」にしておく。 「A」の割り当てた「Ctl_A」の「更新後処理」に式ビルダで =usUpdate([A_ID_Color],[Ctl_A]) を貼り付け。 以上で実行可能です。 そうするとOLEオブジェクトが「Ctl_A」を変更によって色が、ぱらぱら変わります。 色を付けるだけなら条件付書式より、かなり複雑に処理も可能になります。 後は「透過」とか工夫次第ですね で、なんとなくは判りました? (Acc97の時には再計算実施しなければ変わらなかったんですが、Acc2002で大丈夫なので、おそらく2003も大丈夫だと・・・。)

nnntttaaa
質問者

お礼

何度も回答ありがとうございます。 さっそくやってみましたが、 「OLEオブジェクト挿入」→「ペイントブラシ」で大体4つのレコードにそれぞれの色を付けます。 →これがペイントブラシの絵の項目しかみつけられません・・・。 あとOLEサイズの設定をしたいのですが、その設定がどこにあるのか・・・。 折角教えていただいたのにまた質問するような形で申し訳ないです。 この方法でサブフォームに表示した一覧の1行の色を変えるにはこれからまた方法があるのでしょうか? ぜひまた教えてください。よろしくお願いします

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

ACCESSにもフォームで条件付き書式を設定できますが、それではダメでしたか。 >条件付書式は3つまでしか条件付けできず、3つ以上色で分けているのです。 は、表現がおかしくないですか。 >今まで使っているEXCELのデーターから日々インポートするしかないのでしょうか これは前段とどう関係あるのか?

nnntttaaa
質問者

お礼

回答ありがとうございます。 すみません。表現が下手で・・・条件付書式の条件は3つだけしか設定できませんよね? その色分けしている項目が3項目以上あるということなのですが・・・。 今までどおりエクセルでデーターを入力し、それを毎日アクセスにインポートしてデーターを作っていくしかないかと・・・。 説明不足ですみません・・・。

noname#60992
noname#60992
回答No.2

使ったことがないので、はっきりとした意見でなくて申し訳ないのですが、ActiveXコントロールのスプレッドシートを使えばできるかもしれません。 

nnntttaaa
質問者

お礼

回答ありがとうございます。 さっそく調べてみます

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

Acc2000以降の手法ですね。 Acc97の時には、無かったものです。 無かった時にはどうしたのか? あきらめた・・・と言う事が多かった覚えがあります。 しかし、使える手もあります。 別テーブルでインデックス+OLEを使用し、連結OLEのストレッチを使用して1×1のビットマップを全面に色塗りしたおぼえがあります。 これであれば、最大レコード数分の色を付けられますが、項目数分の色へ連結するフィールドをテーブル側に保持しなければならない上に、データを訂正するのは、VBA側からデータを訂正していくようになってきます。 書いている意味理解可能ですか?

nnntttaaa
質問者

お礼

回答ありがとうございます。 私のレベルじゃちょっと理解できないみたいです・・・。 いろいろ勉強してみます