| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		MORNING
 
 
  註冊時間: 2006-01-04 文章: 12
 
  第 1 樓
  | 
		
			
				 發表於: 星期一 一月 09, 2006 4:07 pm    文章主題: 删除数据后,记录指针如何能自动返回一位? | 
				     | 
			 
			
				
  | 
			 
			
				本人有这样的一段程序,但当执行"删除"后,记录指针无法自动返回一位,而是直接回到第一个记录,请哪位大侠能帮我指点一下,在哪里修改(或加代码)能达到这个目的?谢谢!
 
 
 
   cMessageTitle="提示"
 
   cMessageText="真的想删除数据吗?"
 
   cDialogue=4+32+1024
 
   nAnswer=Messagebox(cMessageText, cDialogue,cMessageTitle)
 
    
 
   if  nAnswer=6
 
       delete
 
       pack
 
      
 
    endif
 
  thisform.refresh | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小賴
 
 
  註冊時間: 2004-12-27 文章: 477
 
  第 2 樓
  | 
		
			
				 發表於: 星期一 一月 09, 2006 7:58 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 並非DELETE使指標移動; 而是PACK使指標移動! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		戲武
 
 
  註冊時間: 2005-11-18 文章: 3 來自: 台中
  第 3 樓
  | 
		
			
				 發表於: 星期一 一月 09, 2006 10:33 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如果只DELETE一筆,那就簡單了.
 
if nAnswer=6 
 
delete 
 
Mrec=recno()
 
pack 
 
 
endif
 
go mrec 
 
thisform.refresh _________________ 時間過的真快 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		MORNING
 
 
  註冊時間: 2006-01-04 文章: 12
 
  第 4 樓
  | 
		
			
				 發表於: 星期一 一月 09, 2006 11:45 pm    文章主題: 谢谢! | 
				     | 
			 
			
				
  | 
			 
			
				谢谢上面朋友的帮助,按你的方法试了一下,还有一点小问题,不过稍作了一点小修改就解决了,即:
 
 
if nAnswer=6 
 
delete 
 
Mrec=recno() -1
 
pack 
 
 
endif 
 
go mrec 
 
thisform.refresh | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		小賴
 
 
  註冊時間: 2004-12-27 文章: 477
 
  第 5 樓
  | 
		
			
				 發表於: 星期二 一月 10, 2006 1:35 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				還是會有問題的 ; 試試DELETE第一筆就知道.
 
還有如果有索引的時候; 那會更複雜的.
 
建議您使用SET DELETE ON 或 SET FILTER TO (! DELETE())
 
不要直接使用PACK | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		catjoke
 
 
  註冊時間: 2003-06-16 文章: 175 來自: 香港
  第 6 樓
  | 
		
			
				 發表於: 星期二 一月 10, 2006 9:15 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				問題是... 它已經不存在了.. 你記那個 recno() 是沒有意思的!
 
 
還是試試這樣:
 
 
SET DELETE ON
 
THISFORM.GRID1.REFRESH _________________ 喵喎~ 貓當然是 "茅" 的嘛! ^0^; | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 7 樓
  | 
		
			
				 發表於: 星期二 一月 10, 2006 9:32 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				備份 record no. 的想法是對的,
 
我習慣在 delete 之前記錄,
 
不過只要配套做好,何時記錄倒不是重點 _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		MORNING
 
 
  註冊時間: 2006-01-04 文章: 12
 
  第 8 樓
  | 
		
			
				 發表於: 星期二 一月 10, 2006 4:31 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如小赖朋友所说,当执行删除第一条记录时会出现问题,后来我又作了如下修改:
 
   a=recno()
 
   cMessageTitle="提示"
 
   cMessageText="真的想删除数据吗?"
 
   cDialogue=4+32+1024
 
   nAnswer=Messagebox(cMessageText, cDialogue,cMessageTitle)
 
    
 
      
 
      if nAnswer=6 
 
         delete 
 
            if a=1
 
               pack 
 
             else
 
              go a-1  
 
             
 
        endif
 
      endif 
 
 
   thisform.refresh
 
 
 
重新测试了一下,好像可以(不过有点复杂),但是我对SET DELETE ON 或 SET FILTER TO (! DELETE()) 
 
不是很懂(很惭愧),可否指点一下?谢谢! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		MORNING
 
 
  註冊時間: 2006-01-04 文章: 12
 
  第 9 樓
  | 
		
			
				 發表於: 星期五 一月 13, 2006 4:05 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 谢谢! | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |