投稿時間: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 '******グラフにデータをいれる************************************** '省略・・
|