tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルMsFlexGridについて
記事No11091
投稿日: 2008/01/09(Wed) 13:49
投稿者かず
VB6 WindowsXP
成績管理ソフトを作成しています。
AccessのテーブルをMsFlexGridに表示させています。
花ちゃんのサンプルを使用させていただき、Excelのようにセルのデータを
書き換えるまではできたのですが、変更内容をどのようにしたら保存できるのか、
色々試しているのですが、うまくいきません。
セルを移動するタイミングで変更内容をAccessのテーブルに保存したいのですが、
いい方法はないでしょう?ご教授よろしくお願いします。

[ツリー表示へ]
タイトルRe: MsFlexGridについて
記事No11093
投稿日: 2008/01/09(Wed) 16:49
投稿者花ちゃん
>色々試しているのですが、うまくいきません。
何をどのように試して、どのようにうまくいかなかったのを書いて下さい。

> セルを移動するタイミングで変更内容をAccessのテーブルに保存したいのですが、

なぜ、そのように頻繁に保存する必要があるのですか?
そのような事したら、まともに動かないのでは。

[ツリー表示へ]
タイトルRe^2: MsFlexGridについて
記事No11094
投稿日: 2008/01/10(Thu) 00:09
投稿者かず
花ちゃん、有り難うございます。そうなんですか。では、すべて入力後のタイミングで保存する方がいいのですね。その方法で保存するにはどうしたらいいのでしょうか?初めてMsFlexgridを使用するので、困っています。ご教授よろしくお願いします。

[ツリー表示へ]
タイトルRe^3: MsFlexGridについて
記事No11095
投稿日: 2008/01/10(Thu) 02:05
投稿者かず
これでは、どうしても保存できません。なぜでしょうか?
ご教授お願いします。

Private Sub 戻る_Click()

'データの上書保存処理
    Dim lngCountI As Long       'ループのカウンタ
    Dim seitoKB       As String    '生徒区分
    Dim gakkoID      As String     '学校ID
    Dim sikenID      As String     '試験ID
    Dim nengetu     As String     '年月
    Dim tensuu As Integer         '点数
    Dim kokugo As Integer         '国語
    Dim shakai As Integer         '社会
    Dim suugaku As Integer         '数学
    Dim rika As Integer         '理科
    Dim eigo As Integer         '英語

     Set db = OpenDatabase(drvList & flName)
    
    '***** 度数分布テーブルのオープン *****
    Set rst = db.OpenRecordset("T_度数分布")
    
    With MSFlexGrid1
        .Visible = False        '一旦非表示に(読込が早くなる)
        '現在の状態を配列に再読込
        For lngCountI = 1 To .Rows - 1
            .Row = lngCountI
            .Col = 1
            seitoKB = .Text
            .Col = 2
            gakkoID = .Text
            .Col = 3
            sikenID = .Text
            .Col = 4
            nengetu = .Text
            .Col = 5
            tensuu = .Text
            .Col = 6
            kokugo = .Text
            .Col = 7
            shakai = .Text
            .Col = 8
            suugaku = .Text
            .Col = 9
            rika = .Text
            .Col = 10
            eigo = .Text
       With rst
         .Edit
         ![生徒区分] = seitoKB
         ![学校ID] = gakkoID
         ![試験ID] = sikenID
         ![年月] = nengetu
         ![点数] = tensuu
         ![国語] = kokugo
         ![社会] = shakai
         ![数学] = suugaku
         ![理科] = rika
         ![英語] = eigo
         .Update
       End With
        Next lngCountI
  End With
        
  rst.Close
  db.Close
  Set db = Nothing
  Set rst = Nothing
  
  Unload 度数分布入力画面
  メインメニュー.Show

End Sub

[ツリー表示へ]
タイトルRe^4: MsFlexGridについて
記事No11099
投稿日: 2008/01/10(Thu) 14:40
投稿者花ちゃん
>          ![理科] = rika
>          ![英語] = eigo
>          .Update

           .MoveNext              'この1行を追加して見て下さい。

>        End With
>         Next lngCountI
>   End With



下記のような方法でもいいはずです。
---------------------------------------------------------------
   Dim i As Long
   Dim j As Long
   For i = 1 To MSFlexGrid1.Rows - 1
      RS.Edit
      For j = 0 To MSFlexGrid1.Cols - 1
         '各フィールドに表示データを追加
         RS.Fields(MSFlexGrid1.TextMatrix(0, j)).Value = MSFlexGrid1.TextMatrix(i, j)
      Next j
      RS.Update
      RS.MoveNext
   Next i

[ツリー表示へ]
タイトルRe^5: MsFlexGridについて
記事No11104
投稿日: 2008/01/10(Thu) 23:07
投稿者かず
花ちゃん有り難うございます。
>            .MoveNext              'この1行を追加して見て下さい。
追加することで、できました。
有り難うございます。今後ともよろしくお願いします。

[ツリー表示へ]