我用的是VB6.0,数据库是SQL Server 2005。
主画面中有ComboBox(假如显示的是公司的名称),还有追加和编辑按钮,
我想对ComboBox中的内容进行操作,就是对公司进行操作。
点击追加按钮,弹出一个子对话框,追加一个新的公司信息,
点击编辑按钮,弹出相同的子对话框,对ComboBox中显示的公司进行编辑。
问:在子对话框中,追加的时候所有的值都是空的,编辑的时候是有值的,
    怎样来写什么时候是空的什么时候有值呢?就是说怎样在子画面中怎样来
    判断是点击追加按钮还是编辑按钮过来的呢。
写代码我是新手,谢谢各位高手来指点!!! 

解决方案 »

  1.   

    楼主真好玩,主画面子画面都出来里,拍电影呀??从文字描述来看,一个COMBOBOX,然后2个按钮COMMAND,2个FORM,1个是主画面,一个是子画面,子画面是用来添加和修改的。在子对话框中,追加的时候所有的值都是空的,编辑的时候是有值的, 
    追加的时候,FORM2在SHOW的时候,把编辑框内容清空。。如果是编辑修改,就赋值    怎样来写什么时候是空的什么时候有值呢?就是说怎样在子画面中怎样来 
        判断是点击追加按钮还是编辑按钮过来的呢。 
    根据你按哪个按钮来判断你做的什么操作,是编辑还是添加。代码就不累赘了。
      

  2.   

    ComboBox的值是从数据库中读出来的。
    我想定义个参数,点击追加按钮一个状态,点击编辑按钮一个状态
    但是我不知道这样可不可以,如果可以的话,怎么样来定义呢,
    在哪里怎么定义呢?
      

  3.   


    private AddOrEdit as stringpublic sub Set_State(byval s_State as string)
    on error goto err
    AddOrEdit = s_State
    exit sub
    err:
    end subprivate sub cmdEdit_click()
    dim newfrm as frmCompanynewfrm.set_state "Edit"
    set newfrm = nothing
    end subprivate sub cmdAdd_click()
    dim newfrm as frmCompanynewfrm.set_state "Add"
    set newfrm = nothing
    end subprivate sub Form_Load()
    select case AddOrEdit
    '注意大小写
    case "Add"
    call Init_Ctrl
    case "Edit"
    call Init_Company
    end selectprivate sub Init_Company()
    '根据编辑时传递来的内容初始化
    end subprivate sub Init_Ctrl()
    '防止控件含有垃圾数据,初始化控件
    end sub
      

  4.   

    主画面private sub cmdAdd_Click()
        dim sCorporation as string 
        if frmCorpEdit.Action(sCorporation) then
            combo1.add sCorporation '新公司添加到 ComboBox
        end if
    end ifprivate sub cmdEdit_Click()
        if combo1.text = "" then exit sub
        frmCorpEdit.Action combo1.text
    end if子画面 frmCorpEditOption Explicitprivate m_Result as boolean
    private m_Corporation as stringpublic function Action(byref sCorporation as string) as boolean
        m_Result = false
        m_Corporation = sCorporation    load me
        if sCorporation = "" then
            新增状态,留空
        else
            编辑状态,按 sCorporation 读取记录并显示
             txtCorporation = sCorporation
            txtCorporation.Enabled = False
        end if    me.show vbModal    sCorporation = m_Corporation
        Action = m_result
    end  functionprivate sub cmdOK_click()
        if m_Corporation = "" then
            做 INSERT
        else
            做 UPDATE
        end if    m_Corporation = txtCorporation
        m_Result = true
        unload me
    end sub 
      

  5.   

    你说的字画面也就是一个窗体,类名叫做Form2,
    dim ChildForm as new Form2
    strCurrCompName.显示() '阻塞得模式显示我忘了怎么写了,就是关闭之前不能执行下一句代码
    当用户填写名称后,在点子窗体的确定按钮时,你将该值记录到一个全局变量中然后,如果是新加公司按钮,
    子窗体关闭后,将该值添加到下拉列表中
    如果是修改按钮
    就将这个值替换下拉列表的相应项