Form2で追加、その結果をForm1で表示


ゆーこB  2004-10-22 07:54:47  No: 117124

〜VB6.0で、ADOにてアクセスデータベースに接続〜

Form1とForm2があると仮定します。Form1からForm2を開き、Form2で追加した値をForm1のDataComboにリスト表示出来るようにしたいのですが、うまくいきません。

***********************************************************

Form1↓(Field1の値をリスト表示するDataComboとCommandButtonがひとつずつ)

Private cn As New ADODB.Connection
Private rs As New ADODB.Recordset

'Form2でもForm1と同じコネクションを使う為下を設定します。
Public Function Getcn() As ADODB.Connection
  Set Getcn = cn
End Function

'Form2で追加後、DataComboのRecordset(rs)をRequeryする為下を設定します。
Public Sub rs_Requery()
 rs.Requery
End Sub

cn.ConnectionString = "DSN=Database1"
cn.Open
   
mySQL = "SELECT * FROM Table1"
rs.Open mySQL, cn, adOpenKeyset, adLockPessimistic

'DataComboの設定
Set DataCombo1.RowSource = rs
Set DataCombo1.DataSource = rs
    DataCombo1.ListField = "Field1"
    DataCombo1.BoundColumn = "Field1"

'CommandButtonの設定
Private Sub Command1_Click()
 Form2.Show
End Sub

***********************************************************

Form2↓(TextBox1とCommandButton1がひとつずつ)

Dim cn As ADODB.Connection
Dim rs2 As New ADODB.Recordset
Dim mySQL2 As String

Set cn = Form1.Getcn

mySQL2 = "SELECT * FROM Table1"
rs2.Open mySQL2, cn, adOpenDynamic, adLockPessimistic
  
rs2.AddNew
rs2.Fields("Field1").Value = TextBox1.Text
rs2.Update
rs2.Close
Set rs2 = Nothing

Call Form1.rs_Requery

Form1.DataCombo1.Refresh
Form1.Refresh

Unload Me

***********************************************************

この後、Form1を実際に閉じて、また開くとDataComboに新たに追加されてた値は表示されます。。。Form1は閉じなくても絶対他に何かいい方法があるはず!

一体どこがおかしいのでしょう。
お助け下さい。


特攻隊長まるるう  2004-10-22 18:30:01  No: 117125

問題を特定するために、もっと調べて不具合を限定して下さい。

例えば別フォームだから更新が反映されないのですか?Form1
のみで更新処理と再表示処理をして、動作確認は取れた上での
質問なのでしょうか?それでも成功しないなら、そもそも質問が
間違っているでしょう?

あと何度も書きますが過去ログ検索してください。
Form1 のみでの処理は成功する場合は
  →過去ログ検索『別フォーム』などで値の引渡しが成功してるか確認
する。成功しない場合は
  →過去ログ検索『データコンボ』『DataCombo』などでデータコンボの
更新処理が正しいか確認とか
  →過去ログ検索『更新』でアクセスの更新で問題点を調べたり
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200407/04070099.txt 

回答者の負担を少しでも減らせる情報を提供して下さい。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加