tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルDATA,DBgridの更新
記事No11739
投稿日: 2008/03/11(Tue) 13:17
投稿者うなぎ犬
こんにちは。
VB6.0で家計簿を作っています。

一月にかかる諸経費(名称、費用)をテキストボックスからテーブルに入力して、

Dbgridを使用してその諸経費をフォームに表示させるという処理を行っています。

ここで、テキストボックスから登録するときにコマンドボタンを押下して、

DATAのRefreshを行っているのですが、更新がうまくされません。

更新されるときもあるのですが、確率は1/2ほどで、どうしてそのような現象が起こるのか
さっぱりわかりません。

どうか皆様のお力をお貸しください。

以下がソースです

Private Sub Command7_Click()
Dim Cn As ADODB.Connection
Set Cn = New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

Set Cn = CreateObject("ADODB.Connection")
'データベースに接続します。決まり文句です。
Cn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\Documents and Settings\Miura\デスクトップ\家計簿\kakeibo.mdb"
Dim strSqlm As String

strSqlm = ""
strSqlm = " INSERT INTO KEIHI( 商品名 , 値段 , num ) values ( '" & Text2.Text & "' ,'" & Text5.Text & "' , '" & keihinum & "')"
    
Cn.Execute strSqlm
'終了

  Cn.Close
  Set Cn = Nothing
  
   Form1.Data1.Connect = Access2000
   Form1.Data1.DatabaseName = "C:\Documents and Settings\Miura\デスクトップ\家計簿\kakeibo.mdb"
   Form1.Data1.RecordSource = "SELECT KEIHI.商品名 , KEIHI.値段 FROM KEIHI ORDER BY num asc ;"
   Form1.Data1.Refresh
   Form1.DBGrid1.Refresh
      
   End Sub

[ツリー表示へ]
タイトルRe: DATA,DBgridの更新
記事No11741
投稿日: 2008/03/11(Tue) 18:10
投稿者
いい方法か分かりませんが、

Form1.DBGrid1.ReBind
 
ではどうでしょうか?

[ツリー表示へ]
タイトルRe^2: DATA,DBgridの更新
記事No11763
投稿日: 2008/03/13(Thu) 10:34
投稿者うなぎ犬
來さん。ご返答ありがとうございます。

ご指摘の通りrefreshの箇所をReBindに変更したのですが、

すいません。動作は変わらずでした。

以下がソースです。



Private Sub Command7_Click()
Dim Cn As ADODB.Connection
Set Cn = New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

Set Cn = CreateObject("ADODB.Connection")
'データベースに接続します。決まり文句です。
Cn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\Documents and Settings\Miura\デスクトップ\家計簿\kakeibo.mdb"
Dim strSqlm As String

strSqlm = ""
strSqlm = " INSERT INTO KEIHI( 商品名 , 値段 , num ) values ( '" & Text2.Text & "' ,'" & Text5.Text & "' , '" & keihinum & "')"
    
Cn.Execute strSqlm
'終了

  Cn.Close
  Set Cn = Nothing
  
   Form1.Data1.Connect = Access2000
   Form1.Data1.DatabaseName = "C:\Documents and Settings\Miura\デスクトップ\家計簿\kakeibo.mdb"
   Form1.Data1.RecordSource = "SELECT KEIHI.商品名 , KEIHI.値段 FROM KEIHI ORDER BY num asc ;"
  Form1.Data1.Refresh
' Form1.DBGrid.Refresh
  Form1.DBGrid.ReBind
  
   Call Command6_Click
  
   End Sub

[ツリー表示へ]
タイトルRe: DATA,DBgridの更新
記事No11769
投稿日: 2008/03/13(Thu) 23:11
投稿者魔界の仮面弁士
> DATAのRefreshを行っているのですが、更新がうまくされません。

BeginTrans / CommitTrans による明示的トランザクションを行えば解決するかと。

http://www.canalian.com/workshop/access/JetCache.html

[ツリー表示へ]
タイトルRe^2: DATA,DBgridの更新
記事No11771
投稿日: 2008/03/14(Fri) 14:23
投稿者うなぎ犬
> BeginTrans / CommitTrans による明示的トランザクションを行えば解決するかと。
>
> http://www.canalian.com/workshop/access/JetCache.html

ありがとうございます。更新箇所に

DBEngine.Idele dbRefreshCache

を挿入したところきちんと動作するようになりました。

本当にありがとうございました。

[ツリー表示へ]