〜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は閉じなくても絶対他に何かいい方法があるはず!
一体どこがおかしいのでしょう。
お助け下さい。
問題を特定するために、もっと調べて不具合を限定して下さい。
例えば別フォームだから更新が反映されないのですか?Form1
のみで更新処理と再表示処理をして、動作確認は取れた上での
質問なのでしょうか?それでも成功しないなら、そもそも質問が
間違っているでしょう?
あと何度も書きますが過去ログ検索してください。
Form1 のみでの処理は成功する場合は
→過去ログ検索『別フォーム』などで値の引渡しが成功してるか確認
する。成功しない場合は
→過去ログ検索『データコンボ』『DataCombo』などでデータコンボの
更新処理が正しいか確認とか
→過去ログ検索『更新』でアクセスの更新で問題点を調べたり
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200407/04070099.txt
回答者の負担を少しでも減らせる情報を提供して下さい。
ツイート | ![]() |