标题:请教这个update不管用
只看楼主
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
结帖率:100%
已结贴  问题点数:10 回复次数:7 
请教这个update不管用
用的数据环境添加数据表。用关键字查找是否已存在记录,存在的话提示是否修改,不存在插入新记录,下面这样写的用不了,无提示。,请教这是怎么回事??谢谢

程序代码:
With Thisform
    
    
    If  Isblank(Alltrim(Thisform.txt号.Value)) 
        Messagebox('请输入关键字内容!!!',64,'提示:')
        Return
    Else
        GO TOP 
    SEEK Alltrim(Thisform.txt号.Value)
        
        If FOUND()  
            nAnswer=Messagebox('要修改吗!!!',1+64+256,'提示:')  
            Do CASE      
            Case nAnswer=1
                Update material SET=Alltrim(Thisform.txt号.Value),c=Alltrim(Thisform.txtC.Value) from material  Where Alltrim(Thisform.txt号.Value)==号
                Thisform.Refresh
            Case  nAnswer=0
                Return
            Endcase
        Else
            Insert Into material (号,c) VALUES (Alltrim(Thisform.txt号.Value),Alltrim(Thisform.txtC.Value))
            
                        Thisform.txt号.Value=""                
            Thisform.txtC.Value=""
            
            Thisform.Refresh

        Endif
    Endif

Endwith


[ 本帖最后由 freejike 于 2014-1-5 16:14 编辑 ]
搜索更多相关主题的帖子: 记录 color 数据表 关键字 update 
2014-01-05 16:13
sostemp
Rank: 4
等 级:业余侠客
威 望:8
帖 子:162
专家分:221
注 册:2009-6-2
得分:4 
LOCATE for Alltrim(号)=Alltrim(Thisform.txt号.Value)
2014-01-05 16:18
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:4 
index on 号 tag 号 *---------加个索引看看
SEEK Alltrim(Thisform.txt号.Value)
2014-01-05 16:24
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
得分:0 
回复 3楼 tlliqi
号已经存在,并且是主索引标识或侯选索引标识,改写吗?
确定后,文件必须已独占方式打开,调试器指向index on 号 tag 号
2014-01-05 16:29
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
得分:0 
回复 2楼 sostemp
先用locate,也是这样的。所以改成seek试试
2014-01-05 16:29
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
得分:0 
回复 2楼 sostemp
我写成下面这样,不管有没记录都提示“要修改吗?”确定后,就没反应了,若把err去掉可以添加新记录,但不能修改,不提示“要修改吗?”

程序代码:
With Thisform
    
    
    If  Isblank(Alltrim(Thisform.txt号.Value))
        Messagebox('请输入关键字内容!!!',64,'提示:')
        Return

    Else
        Locate For Alltrim(Thisform.txt号.Value)==号
        err=.F.
        On Error err=.T.  

        If Found()=err   
            nAnswer=Messagebox('要修改吗!!!',1+64+256,'提示:')   
            Do CASE      
            Case nAnswer=1
                Update material;
                    SET=Alltrim(Thisform.txt号.Value),c=Alltrim(Thisform.txtC.Value) Where Alltrim(Thisform.txt号.Value)==号

                Thisform.Refresh
            Case  nAnswer=0
                Return
            Endcase
        Else
            Insert Into material (号,c) VALUES (Alltrim(Thisform.txt号.Value),Alltrim(Thisform.txtC.Value))
            Thisform.txt号.Value=""               
            Thisform.txtC.Value=""
   
            Thisform.Refresh

        Endif
    Endif

Endwith


[ 本帖最后由 freejike 于 2014-1-5 16:43 编辑 ]
2014-01-05 16:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:4 
逐步跟踪看看指令執行流程就知道怎麽回事了

授人以渔,不授人以鱼。
2014-01-06 11:41
freejike
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-10-13
得分:0 
回复 7楼 TonyDeng
斑竹我这个是表单上的按钮控件,一直搞不了
2014-01-07 10:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-426155-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020988 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved