投稿日 | : 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