Access VBA質問箱 IV

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

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


2177 / 2272 ツリー ←次へ | 前へ→

【3578】MSFlexGridについて ガッツ 04/9/24(金) 19:36 質問[未読]
【3580】Re:MSFlexGridについて ガッツ 04/9/27(月) 10:54 質問[未読]
【3589】Re:MSFlexGridについて hatena 04/9/27(月) 18:04 回答[未読]
【3590】Re:MSFlexGridについて Chou 04/9/27(月) 23:24 回答[未読]

【3578】MSFlexGridについて
質問  ガッツ  - 04/9/24(金) 19:36 -

引用なし
パスワード
   質問させていただきます。

MSFlexGridについてなのですが、
クエリで作ったデータをMSFlexGridに
表示させようと思うのですが、やり方がいかんせんわかりませんでした。

lstボックスと違いRowSourceなどがない為どのようにしていいか
わかりません。知っている方いましたらよろしくお願いします。

【3580】Re:MSFlexGridについて
質問  ガッツ  - 04/9/27(月) 10:54 -

引用なし
パスワード
   やはりこの質問は、レスが付きにくいですね;;
というか、自分の質問がそっけなさすぎたのですかね?スミマセン。

それで、自分で少し調べた結果を書きますと、

Form_Loadの所に以下の様に書きました。


Dim lngCountI As Long      'ループ用カウンタ

  'MSFlexGrid の初期設定
  With flxGrid
    .Rows = 10         '行の総数(固定行含む)
    .Cols = 8          '列の総数(固定列含む)
    .FixedRows = 1       '固定行の数 Rowsより1以上少ない事
    .FixedCols = 1       '固定列の数 Colsより1以上少ない事
    .Row = 0
    .ColWidth(0) = 500     '列幅
    .ColWidth(1) = 550
    .ColWidth(2) = 1800
    For lngCountI = 3 To 7
      .ColWidth(lngCountI) = 1000
    Next lngCountI
    .RowHeight(0) = 350     '行の高さ
    .CellAlignment = flexAlignCenterCenter
    .Col = 1: .Text = "列名0"
    '該当セルを 中寄/中寄 表示
    .CellAlignment = flexAlignCenterCenter
    .Col = 2: .Text = "列名1"
    .CellAlignment = flexAlignCenterCenter
    .Col = 3: .Text = "列名2"
    .CellAlignment = flexAlignCenterCenter
    .Col = 4: .Text = "列名3"
    .CellAlignment = flexAlignCenterCenter
    .Col = 5: .Text = "列名4"
    .CellAlignment = flexAlignCenterCenter
    .Col = 6: .Text = "列名5"
    .CellAlignment = flexAlignCenterCenter
    .Col = 7: .Text = "列名6"
    .CellAlignment = flexAlignCenterCenter
    .Col = 0
    For lngCountI = 1 To .Rows - 1
      .RowHeight(lngCountI) = 350   '行の高さ
      .Row = lngCountI
      .Text = lngCountI        '行番号を表示
    Next lngCountI
    .Col = 1: .Row = 1
    'カレントセルを反転表示(強調表示すればカレントセルが解りやすい)
    .FocusRect = flexFocusNone
    .HighLight = flexHighlightAlways
  End With


こういう風に、全て直打ちでMSFlexGridに書いているのですが、
テーブルの内容や、クエリの内容を表示させる事を知っている方
もしくは、できないんじゃないなど、知っている方
よろしければ、お願いします。

【3589】Re:MSFlexGridについて
回答  hatena  - 04/9/27(月) 18:04 -

引用なし
パスワード
   >こういう風に、全て直打ちでMSFlexGridに書いているのですが、
>テーブルの内容や、クエリの内容を表示させる事を知っている方
>もしくは、できないんじゃないなど、知っている方
>よろしければ、お願いします。

MSFlexGrid を使ったことはないので、想像ですが、
テーブルやクエリは、Access(or データベース)独特のものですので、
Access付属のコントロールのように簡単には連結できないと思います。

DAO か、ADO でレコードセットを開き、順番にテーブル内容を読み込んで
MSFlexGrid に直書きするしかないと思います。
もちろんMSFlexGridで編集した内容をテーブルに戻すのも自前で
コーディングする必要があると思います。

あくまで推測ですので間違っていたらごめんなさい。

【3590】Re:MSFlexGridについて
回答  Chou  - 04/9/27(月) 23:24 -

引用なし
パスワード
   ▼ガッツ さん:
>やはりこの質問は、レスが付きにくいですね;;
>というか、自分の質問がそっけなさすぎたのですかね?スミマセン。
>
>それで、自分で少し調べた結果を書きますと、
>
>Form_Loadの所に以下の様に書きました。
>
>
>Dim lngCountI As Long      'ループ用カウンタ
>
>  'MSFlexGrid の初期設定
>  With flxGrid
>    .Rows = 10         '行の総数(固定行含む)
>    .Cols = 8          '列の総数(固定列含む)
>    .FixedRows = 1       '固定行の数 Rowsより1以上少ない事
>    .FixedCols = 1       '固定列の数 Colsより1以上少ない事
>    .Row = 0
>    .ColWidth(0) = 500     '列幅
>    .ColWidth(1) = 550
>    .ColWidth(2) = 1800
>    For lngCountI = 3 To 7
>      .ColWidth(lngCountI) = 1000
>    Next lngCountI
>    .RowHeight(0) = 350     '行の高さ
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 1: .Text = "列名0"
>    '該当セルを 中寄/中寄 表示
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 2: .Text = "列名1"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 3: .Text = "列名2"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 4: .Text = "列名3"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 5: .Text = "列名4"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 6: .Text = "列名5"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 7: .Text = "列名6"
>    .CellAlignment = flexAlignCenterCenter
>    .Col = 0
>    For lngCountI = 1 To .Rows - 1
>      .RowHeight(lngCountI) = 350   '行の高さ
>      .Row = lngCountI
>      .Text = lngCountI        '行番号を表示
>    Next lngCountI
>    .Col = 1: .Row = 1
>    'カレントセルを反転表示(強調表示すればカレントセルが解りやすい)
>    .FocusRect = flexFocusNone
>    .HighLight = flexHighlightAlways
>  End With
>
>
>こういう風に、全て直打ちでMSFlexGridに書いているのですが、
>テーブルの内容や、クエリの内容を表示させる事を知っている方
>もしくは、できないんじゃないなど、知っている方
>よろしければ、お願いします。

間違ってたらゴメンナサイ。
FixedRows, FixedColsにTextを表示させている様に
(例えば列名1〜6)、Table又はQueryを基に
Recordsetを開いてRecordsetのFieldを使えば
内容は表示されるはずです。
例えば:
MSFlexGrid1.Row = 1
MSFlexGrid1.Col = 1
MsFlexGrid1.Text = RecordsetName!Field

Loop等が使えます。

2177 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078309
(SS)C-BOARD v3.8 is Free