作者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