作者qos (什麼是真愛)
看板Visual_Basic
標題Re: [VB6 ] 修改後讀取資料庫
時間Fri Mar 31 23:05:08 2006
※ 引述《qos (什麼是真愛)》之銘言:
: 存在視窗A和視窗B
: 視窗A是用來修改資料庫的資料
: 視窗B是用來查詢資料庫的資料
: 問題:
: 若我在視窗B查詢某一筆資料庫的資料
: 然後顯示在TextBox
: 然後在視窗A更改這一筆資料
: 然後再一次在視窗B查詢這筆資料
: 資料卻還是舊的
: 除非我把視窗B關掉然後重開
: 才會查詢到新更新的資料
: 這是為什麼呢
: 我有設斷點去看我從資料庫讀出的資料是舊的
: 除非我重開B視窗 從資料庫讀出的資料才會是新的
: 這是為什麼呢
修改視窗的原始碼:
Private Sub Command1_Click()
Dim modify As Boolean
modify = False
Adodc1.Recordset.MoveFirst
While (Not Adodc1.Recordset.EOF And Not modify)
If Adodc1.Recordset.Fields(0) = Text1.Text Then
Text2.Text = Adodc1.Recordset.Fields(0)
If Adodc1.Recordset.Fields(1) <> "" Then
Text3.Text = Adodc1.Recordset.Fields(1)
End If
If Adodc1.Recordset.Fields(2) <> "" Then
Text4.Text = Adodc1.Recordset.Fields(2)
End If
MsgBox "欲修改之資料已於下方顯示!!!", , "提示訊息"
modify = True
End If
Adodc1.Recordset.MoveNext
Wend
If Not modify Then
MsgBox "欲修改之資料不存在!!!", , "錯誤訊息"
Else
Adodc1.Recordset.MovePrevious
End If
End Sub
Private Sub Command2_Click()
ret = MsgBox("是否真得要修改?", vbYesNo, "確認修改")
If ret = vbYes Then
Adodc1.Recordset.Fields(0) = Text2.Text
Adodc1.Recordset.Fields(1) = Text3.Text
Adodc1.Recordset.Fields(2) = Text4.Text
Adodc1.Recordset.Update
MsgBox "修改成功!!!", , "修改成功"
End If
End Sub
查詢視窗的原始碼:
Private Sub Command1_Click()
Dim inquire As Boolean
inquire = False
Adodc1.Recordset.MoveFirst
While (Not Adodc1.Recordset.EOF And Not inquire)
If Adodc1.Recordset.Fields(0) = Text1.Text Then
Text2.Text = Adodc1.Recordset.Fields(0)
If Adodc1.Recordset.Fields(1) <> "" Then
Text3.Text = Adodc1.Recordset.Fields(1)
End If
If Adodc1.Recordset.Fields(2) <> "" Then
Text4.Text = Adodc1.Recordset.Fields(2)
End If
inquire = True
End If
Adodc1.Recordset.MoveNext
Wend
If Not inquire Then
MsgBox "欲查詢之資料不存在!!!", , "錯誤訊息"
Else
MsgBox "欲查詢之資料已於下方顯示!!!", , "提示訊息"
End If
End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.42.26
1F:推 sueadolph:沒看到你對Adodc1.Recordset 的定義- - 03/31 23:36
2F:→ sueadolph:如果是在屬性欄處定義~~那妳早將此Adodc1.Recordset抓出 03/31 23:37
3F:推 sueadolph:當然就還是顯示舊的資訊了~ 03/31 23:43
4F:→ sueadolph:如果只選用Adodc1.Recordset的方法 應要技巧性的迴避 03/31 23:45
5F:→ sueadolph:二個表單同一時間被打開 03/31 23:46
6F:→ sueadolph:其實可以把 查詢及修改寫在同一個表單上面.這是最簡單的 03/31 23:46
7F:推 qos:我是使用你說的第一個方式...如果還是想寫在兩個表單...請問 04/02 16:41
8F:→ qos:可以如何解決 04/02 16:42
9F:推 sueadolph:..不是有說了= = 技巧性的去迴避他吧~~強迫使用者無法 04/04 03:43
10F:→ sueadolph:同時開啟二個表單。 或是在click的程式碼裡去定義adodc 04/04 03:45
11F:推 qos:請問可以教導第二個方法怎麼用嗎?在VB裡子視窗被關閉會送出什 04/05 14:01
12F:→ qos:麼訊息給父視窗? 04/05 14:02
13F:推 sueadolph:第二個方法= ="??? 04/06 03:17
14F:推 sueadolph:在程式執行的時候,才去定義ADODC的ConnectionString 04/06 03:30
15F:→ sueadolph:就可以解決你的問題才是?? 04/06 03:42
16F:推 sueadolph:愕~應該是說在Command_Click才去定義ConnectionString 04/06 03:44