VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/12/10(Wed) 10:47
投稿者しょっぺい
URL
タイトルRe^2: MSChart.ColumnCountについて

御指摘ありがとうございます。今後気をつけたいと思います。

> 多分、どこかコードが間違っているものと思われます。
> 問題を絞り込む意味でも、まず行数と列数を指定すればそのファイルからグラフを
> 作成できるのか、実コードで確認して下さい。
> その後、行数と列数を変数で渡すようにして見て下さい。

すみません、もう一度コードを見直してみます。

> 又は、その事象が再現できるコードを投稿して頂かないと今の貴方の説明では
> どなたも回答できないかと思います。

すみません。コードが多少長いのですが掲載させて頂きます。
処理の流れは検索条件を選択し、フラグによりSELECT文の条件を変えて検索をし
その検索データをもとに表を作成する。
という物で、この処理は検索して、その検索データをもとに表を作成する部分です。

Private Sub Lv_Type()
   '**** 変数 ****
    Dim vArray(500, 500) As Variant
    Dim w_row As Integer
    Dim buf As String
    Dim record_count1 As Integer
    Dim i As Integer
    Dim j As Integer
    Dim tmp_col As Integer
    Dim tmp_row As Integer
    Dim wk_prod_class As String
    Dim w_cnt As Integer
    
    On Error GoTo err_Lv_Type
    
    Erase w_data
    
    MSChart1.Legend.Location.Visible = False
    Screen.MousePointer = vbHourglass

    MSFlexGrid1.Clear
    
    'タイトル表示
    MSChart1.TitleText = "データ一覧"

    '接続チェック
    If fnc_active_check = False Then
        MsgBox "接続できませんでした"
        Screen.MousePointer = vbDefault
        prc_form_end
    End If

    'グラフ,表の設定 初期値
    MSChart1.RowCount = 4
    MSChart1.ColumnCount = 4 '<><><>ここではエラーは起きない
    MSFlexGrid1.Cols = 5
    
    '表&グラフに月表示
    '省略・・

    '*****データを取得****************************************
    buf1 = fnc_get_data(2) 'サブプログラムにてsql文作成(フラグにより判別)

    Set OraDynaset = OraDatabase.DbCreateDynaset(buf1, 0&)
    
    'レコード件数の取得
    record_count1 = OraDynaset.RecordCount
    'データ配列作成
    ReDim w_data(record_count1)
    'データを得る
    For i = 1 To record_count1
        w_data(i).month = OraDynaset.fields("tuki").Value
        w_data(i).code = OraDynaset.fields("item_code").Value
        w_data(i).name = OraDynaset.fields("item_name").Value
      
        If IsNull(OraDynaset.fields("atai").Value) Then
            w_data(i).atai = 0
        Else
            w_data(i).atai = OraDynaset.fields("atai").Value
        End If
        OraDynaset.movenext
    Next i
    i = 0

    '表の行を設定 初期値
    MSFlexGrid1.Rows = 2

    '*****表にセット****************************************
    For i = 1 To record_count1
        If i = 1 Then
            w_cnt = 1
            wk_prod_class = w_data(i).code
            MSFlexGrid1.Row = 1
            MSFlexGrid1.Col = 0
            MSFlexGrid1.Text = w_data(i).name
            p_prod_class_e = wk_prod_class
        End If

        'データが変わると行を変える
        If wk_prod_class <> w_data(i).code Then
            w_cnt = w_cnt + 1
            With MSFlexGrid1
                .Rows = .Rows + 1
                .Row = w_cnt
                .Col = 0
                .Text = w_data(i).name
            End With
            wk_prod_class = w_data(i).code
            p_prod_class_e = wk_prod_class
        End If
        '月だけ変わる場合は同じ行にする
        If wk_prod_class = w_data(i).code Then
            With MSFlexGrid1
                .Row = w_cnt
            End With
        End If
      
        w_row = MSFlexGrid1.Row
        
        For j = 1 To 4
            With MSFlexGrid1
                .Row = 0
                .Col = j
                
                '0行目の月データから入力する列数を判断する
                If .Text = month(w_data(i).month) Then
                    .Row = w_row
                    .Col = j
                     '値の表示
                    .Text = w_data(i).atai
                    If w_data(i).atai = 0 Then
                        .Text = ""
                    End If
                End If
            End With
        Next j
    Next i
    i = 0
    j = 0
    
    'グラフの設定 行数から月、の行を引いた数の凡例
    MSChart1.ColumnCount = MSFlexGrid1.Rows - 1

  '<><><>  ここでエラー このとき MSFlexGrid1.Rows=6
    '↑この位置で MSChart1.ColumnCount = 5 としてみたがエラー

    '系列の積み重ね
    MSChart1.Stacking = True
    
    '******グラフにデータをいれる**************************************
    '省略・・


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -