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

投稿日: 2004/07/22(Thu) 11:54
投稿者C_Jr
URL
タイトルRe^7: MSFlexGrid

//*以下、ソースです*//
//*コネクションやレコードセット取得は、申し訳ないのですが公開できません・・・誠に申し訳ないです*//

Private Sub CmdKensaku_Click()

'宣言部
    Dim I_Judge As Integer              '割り切った値を判定
    Dim L_CellCounter As Long           'セルのカウンタ
    Dim I_DBJudge As Integer
    Dim I_RSCOUNT As Integer
    
'DBに接続
    Dim Rs As New ADODB.Recordset
    Dim S_SQL As String
            
'初期化
    I_RSCOUNT = 0
    L_CellCounter = 0
    I_DBJudge = 0
    I_Judge = 0
    S_SQL = ""
    
'設定
    'DBへの接続
    I_DBJudge = (DBに接続する)
    
    'SQLをセット
    S_SQL = "SELECT IsNull(国語,0) as 国語,"
    S_SQL = S_SQL & "IsNull(算数,0) as 算数,"
    S_SQL = S_SQL & "IsNull(理科,0) as 理科,"
    S_SQL = S_SQL & "IsNull(社会,0) as 社会,"
    S_SQL = S_SQL & "IsNull(英語,0) as 英語,"
    S_SQL = S_SQL & "IsNull(物理,0) as 物理"

    S_SQL = S_SQL & "From "
    S_SQL = S_SQL & "科目表 "
    
    'レコードセット取得
    If I_DBJudge = 0 Then
        I_DBJudge = (レコードセットを取得する処理)
    End If
    
    Me.fpSpread1.Redraw = False                 '描画OFF
    Me.fpSpread1.Visible = False
    
    Me.fpSpread1.DataSource = Rs
    Rs.MoveFirst
    
    I_RSCOUNT = Rs.RecordCount
    fpSpread1.ClearRange 1, 1, I_RSCOUNT * 2, 5, False
    Me.fpSpread1.MaxRows = I_RSCOUNT * 2          '最大行数をレコードセットの桁数にセット

'実処理



    If Rs.EOF <> True Then
        With Me.fpSpread1
            .Col2 = 5
            .Row2 = .MaxRows
        End With
    
        Do Until Rs.EOF = True
            L_CellCounter = L_CellCounter + 1
            With Me.fpSpread1
                .Col = 1
                .Row = L_CellCounter
                .AddCellSpan 2, L_CellCounter, 2, 1
                .AddCellSpan 0, L_CellCounter, 2, 2            '結合


                .Clip = Rs!国語 & vbTab & _
                        Rs!算数 & vbTab & vbTab & _
                        Rs!理科 & vbTab & _
                        Rs!社会
            End With
            
            L_CellCounter = L_CellCounter + 1
            
            With Me.fpSpread1
                .Col = 1
                .Row = L_CellCounter
                .AddCellSpan 1, L_CellCounter, 2, 1
                .AddCellSpan 3, L_CellCounter, 3, 1
                .AddCellSpan 0, L_CellCounter, 2, 2            '結合
                

                .Clip = Rs!英語 & vbTab & vbTab & _
                        Rs!物理
            End With
            Rs.MoveNext
        Loop
    End If
    
    Me.fpSpread1.Visible = True
    Me.fpSpread1.Redraw = True                          '描画ON
    
    '終了処理
    Rs.Close
    Set Rs = Nothing
End Sub


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

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

- Web Forum -