最近本人在做订单管理程序,有几个问题很是让人烦恼。很想听听大家的意见。先介绍本人的两种做法:
    第一种:采用临时表,将主表放在Textbox或其他的控件中,明细表放在临时表中,这样有一个问题:就是当有多人正在做单时,可以甲保存数据就会将乙的数据保存进去,这样数据就增加了,显然不对。
    第二种:不用临时表,就是将主表放在Textbox或其他的控件中,然后从另一窗口中调数据进入MSHFlex中(同时在此弹出的窗口中修改数据),这也带来一个问题,就是窗口的调用太多,频率太高。真不知怎样做才合适。请各位做过的高手谈谈你们的做法,供我借鉴。
    最好有原码,说明详细点,越详细分越多。

解决方案 »

  1.   

    结合textbox和combo直接在msflex中修改.
      

  2.   

    我一般都是用第一种方式。如果你用的数据库是SQL SERVER 数据库,多人操作时就不会出现你所说的问题。
      

  3.   

    如果你用的不是SQLSERVER数据库,你可以在创建临时表的时候,取一个随机数作为表名。
    这样也不会出现你所说的问题了。
      

  4.   

    我用的就是SQL Server2000,但操作时就会出现,一个人输入的数据进入数据库,另一个人输入的数据也进入数据库,在存入表时就会出现数据增加的情况。
    比如
    在存盘时Set rs=cn.execte("Select * from temptable")
    dim sqlstr as string
    sqlstr="Insert Into mainTable(aa,...) values('"& text1.text &"'......)"
    do while not rs.eof
       sqlstr=sqlstr & " Insert into DetailsTable values()"......   '这里增加数据了
       rs.movenext
    loop
    cn.begintrans
    on error goto SaveErr
       cn.execute(sqlstr)
       cn.committrans
       msgbox "Successful!"
       exit sub
    SaveErr:
       cn.rollbacktrans
       msgbox "Failer"
    如果用MSFlext则其Textbox 与Combobox的定位难。有没有谁有更好的方法。
       
      

  5.   

    Public Cn As New ADODB.Connection
    Public Rs As New ADODB.Recordset
    rs.open"Select * from temptable ",cn,1,3
    rs("字段名")=text1.text
    .....
    rs.update
    rs.close
    当(rs.open"Select * from temptable ",cn,1,3)中用"3"时就锁定了表
      

  6.   

    用主从表啊,我最近也做个类似程序。
    主表用textbox实现
    从表用datagrid啊
    可以放在同一界面里
    主表的按钮可以控制从表按钮哟
    当主表操作成功,才激活从表的相关按钮!:)
      

  7.   

    hzf005(红蜘蛛) 
    我的方法和你的一样
      

  8.   


     回复人: icedut(冰)  hzf005(红蜘蛛) 
    你们的方法没问题吗,当有多人操作进问题很多啊!我以前试过,所以才提出来与大家讨论。