向各位老师请教一下问题
发表在VB答疑区
2009-12-05
是否精华
是
否
版块置顶:
是
否
设置时间:
非永久
永久
起始时间:
结束时间:
是否扣分:
是
否
我作了一个工程.在这个工程中,有一个父窗体和一个子窗体.当点击父窗体中的"添加"或"修改"按钮时,应调出相应的"添加"或"修改"子窗体,并对数据库进行添加或修改.
我的问题是:点击"添加"时,调出的却是"修改"窗体;当点击"修改"时,调出的还是"修改"窗体
请各位老师帮助解决一下.
谢谢!!!
我的问题是:点击"添加"时,调出的却是"修改"窗体;当点击"修改"时,调出的还是"修改"窗体
请各位老师帮助解决一下.
谢谢!!!
精彩评论 11
2009-12-06
4L
[FIELDSET][LEGEND]引自:3楼[/LEGEND]
[FIELDSET][LEGEND]引自:2楼[/LEGEND]
我设变量了呀.
Dim blnAddCP As Boolean If blnAddCP = True Then '添加信息
If blnAddCP = false Then '修改信息
但就是调不出来"添加"窗体,也不能插入新行,游标没有指向新行
[/FIELDSET]
回复:
你声明的是局部变量,默认值是False,当然调不出添加窗体,你应该声明窗体级变量,而且要Public。在调用该窗体的控件中通过:
窗体名.blnAddCP =True或者False来指定。
[/FIELDSET]
回复: 大师终归是大师,问题已经解决了:Form3.blnAddCP = True
Load Form3
Form3.Show
但还是有一个问题:添加完后,接着就作“修改”,但出现的还是“添加”窗体,顺序号也是新的,即使是选中某一行要修改,也是添加进了新的内容。
请问大师,怎么处理一下呢?
谢谢!!!
[FIELDSET][LEGEND]引自:2楼[/LEGEND]
我设变量了呀.
Dim blnAddCP As Boolean If blnAddCP = True Then '添加信息
If blnAddCP = false Then '修改信息
但就是调不出来"添加"窗体,也不能插入新行,游标没有指向新行
[/FIELDSET]
回复:
你声明的是局部变量,默认值是False,当然调不出添加窗体,你应该声明窗体级变量,而且要Public。在调用该窗体的控件中通过:
窗体名.blnAddCP =True或者False来指定。
[/FIELDSET]
回复: 大师终归是大师,问题已经解决了:Form3.blnAddCP = True
Load Form3
Form3.Show
但还是有一个问题:添加完后,接着就作“修改”,但出现的还是“添加”窗体,顺序号也是新的,即使是选中某一行要修改,也是添加进了新的内容。
请问大师,怎么处理一下呢?
谢谢!!!
2009-12-07
7L
[FIELDSET][LEGEND]引自:6楼[/LEGEND]
您好!
在“修改”按钮的单击事件中 将公共变量设置为False。如 窗体名.blnAddCP =False
[/FIELDSET]
回复:还是不对呀,
Public blnAddCP As Boolean
Case "XG"
'执行修改操作
If Form1.Adodc1.Recordset.RecordCount > 0 Then
Form3.blnAddCP = False
Load Form3
Form3.Show
End If
请再给予指导!!!
谢谢!!!!!!!!!!!!!!!!
您好!
在“修改”按钮的单击事件中 将公共变量设置为False。如 窗体名.blnAddCP =False
[/FIELDSET]
回复:还是不对呀,
Public blnAddCP As Boolean
Case "XG"
'执行修改操作
If Form1.Adodc1.Recordset.RecordCount > 0 Then
Form3.blnAddCP = False
Load Form3
Form3.Show
End If
请再给予指导!!!
谢谢!!!!!!!!!!!!!!!!
2009-12-07
9L
[FIELDSET][LEGEND]引自:8楼[/LEGEND]
1、我指定的是按“到岗ID”排序,但还是排的乱其八糟,为什么呢?
2、有的时候执行修改,能修改指定的行,而有的时候修改的是上一行或是其他行,又是为什么呢?
请一起指教一下好吗?
[/FIELDSET]
回复:
如果窗体Form3中调用的表与Form1中调用的相同,就可以根据窗体Form1中记录集中的记录指针指定窗体Form3中的记录指针。
如下面代码:
Form3.Adodc1.Recordset.AbsolutePosition = Form1.Adodc1.Recordset.AbsolutePosition
1、我指定的是按“到岗ID”排序,但还是排的乱其八糟,为什么呢?
2、有的时候执行修改,能修改指定的行,而有的时候修改的是上一行或是其他行,又是为什么呢?
请一起指教一下好吗?
[/FIELDSET]
回复:
如果窗体Form3中调用的表与Form1中调用的相同,就可以根据窗体Form1中记录集中的记录指针指定窗体Form3中的记录指针。
如下面代码:
Form3.Adodc1.Recordset.AbsolutePosition = Form1.Adodc1.Recordset.AbsolutePosition
2009-12-08
10L
谢谢大师的指点。其实我的窗体3里有这么一句代码:
rs1.AbsolutePosition = Form1.Adodc1.Recordset.AbsolutePosition
没有发挥作用的真正原因是:我分别查看了一下窗体3和窗体1里边Adodc属性。
在窗体3中CommandType选择的是“8”,RecordSource输入的是select * from 到岗信息 order by 到岗ID
窗体1中CommandType选择的是“2”,RecordSource输入的是“到岗信息”。
我把窗体1中的属性改成与窗体3属性相同,就解决了问题。
再次感谢大师,这个问题困扰了我好几天。
rs1.AbsolutePosition = Form1.Adodc1.Recordset.AbsolutePosition
没有发挥作用的真正原因是:我分别查看了一下窗体3和窗体1里边Adodc属性。
在窗体3中CommandType选择的是“8”,RecordSource输入的是select * from 到岗信息 order by 到岗ID
窗体1中CommandType选择的是“2”,RecordSource输入的是“到岗信息”。
我把窗体1中的属性改成与窗体3属性相同,就解决了问题。
再次感谢大师,这个问题困扰了我好几天。