已有22人关注
向各位老师请教一下问题
发表在VB答疑区 2009-12-05
是否精华
版块置顶:
    我作了一个工程.在这个工程中,有一个父窗体和一个子窗体.当点击父窗体中的"添加"或"修改"按钮时,应调出相应的"添加"或"修改"子窗体,并对数据库进行添加或修改.
    我的问题是:点击"添加"时,调出的却是"修改"窗体;当点击"修改"时,调出的还是"修改"窗体
    请各位老师帮助解决一下.
    谢谢!!!
分享到:
精彩评论 11
vbsoldier
学分:0 LV1
2009-12-05
沙发
你需要给子窗体中或模块中的用于充当标识的变量进行设置。

例如有个变量类型时整型,如果值是0,就将子窗体设置为添加窗体,如果值是1,就将子窗体设置为修改窗体。
大漠孤烟2009
学分:0 LV1
2009-12-05
板凳
我设变量了呀.
Dim blnAddCP As Boolean  If blnAddCP = True Then '添加信息
 If blnAddCP = false Then '修改信息
但就是调不出来"添加"窗体,也不能插入新行,游标没有指向新行

vbsoldier
学分:0 LV1
2009-12-05
地板
[FIELDSET][LEGEND]引自:2楼[/LEGEND]
我设变量了呀.
Dim blnAddCP As Boolean  If blnAddCP = True Then '添加信息
 If blnAddCP = false Then '修改信息
但就是调不出来"添加"窗体,也不能插入新行,游标没有指向新行


[/FIELDSET]

回复:
  你声明的是局部变量,默认值是False,当然调不出添加窗体,你应该声明窗体级变量,而且要Public。在调用该窗体的控件中通过:
窗体名.blnAddCP =True或者False来指定。
大漠孤烟2009
学分:0 LV1
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


    但还是有一个问题:添加完后,接着就作“修改”,但出现的还是“添加”窗体,顺序号也是新的,即使是选中某一行要修改,也是添加进了新的内容。
    请问大师,怎么处理一下呢?
    谢谢!!!
  
大漠孤烟2009
学分:0 LV1
2009-12-07
5L
“添加完后,接着就作“修改”,但出现的还是“添加”窗体,顺序号也是新的,即使是选中某一行要修改,也是添加进了新的内容。
”。这个问题昨晚也解决了。
    但又出现了一个新问题:修改也能修改,但确定修改后一看,修改的不是选定的那一行,而是上一行。如:要修改130行,结果却是把修改后的值赋给了129行,请问怎么回事?怎么解决呢?????
Lemon
学分:0 LV1
2009-12-07
6L
您好!

在“修改”按钮的单击事件中 将公共变量设置为False。如 窗体名.blnAddCP =False
大漠孤烟2009
学分:0 LV1
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
    请再给予指导!!!
   谢谢!!!!!!!!!!!!!!!!
  
大漠孤烟2009
学分:0 LV1
2009-12-07
8L
    1、我指定的是按“到岗ID”排序,但还是排的乱其八糟,为什么呢?
    2、有的时候执行修改,能修改指定的行,而有的时候修改的是上一行或是其他行,又是为什么呢?
    请一起指教一下好吗?
vbsoldier
学分:0 LV1
2009-12-07
9L
[FIELDSET][LEGEND]引自:8楼[/LEGEND]
    1、我指定的是按“到岗ID”排序,但还是排的乱其八糟,为什么呢?
    2、有的时候执行修改,能修改指定的行,而有的时候修改的是上一行或是其他行,又是为什么呢?
    请一起指教一下好吗?
[/FIELDSET]

回复:
  如果窗体Form3中调用的表与Form1中调用的相同,就可以根据窗体Form1中记录集中的记录指针指定窗体Form3中的记录指针。

如下面代码:
Form3.Adodc1.Recordset.AbsolutePosition = Form1.Adodc1.Recordset.AbsolutePosition
大漠孤烟2009
学分:0 LV1
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属性相同,就解决了问题。
    再次感谢大师,这个问题困扰了我好几天。
首页上一页 12 下一页尾页 11 条记录 1/2页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照