設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

12下一頁
返回列表 發(fā)新帖
查看: 6017|回復(fù): 11
打印 上一主題 下一主題

[模塊/函數(shù)] QueryTable導(dǎo)出數(shù)據(jù)無法徹底刪除查詢表(更新為2003版本)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2017-7-6 14:32:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 Henry D. Sy 于 2017-7-8 09:35 編輯

利用Excel QueryTable導(dǎo)出數(shù)據(jù)無法徹底刪除查詢表
有時可以刪除,有時又不能刪除

特意把導(dǎo)入分成兩種情況
最開始時,只寫了第一種導(dǎo)出方式,結(jié)果沒有刪除成功
增加了第二種導(dǎo)入方式,發(fā)現(xiàn)第一種方式下,刪除成功,而第二種卻不成功
把兩種情況分開寫(也就是不在一個模塊種),結(jié)果是有時成功,有時不成功,
不知道問題出在哪里,搞了半天也沒搞明白.



(如果保留查詢表,每次打開該Excel文件,總會提醒更新或者啟用,除非選項里設(shè)為接受所有的連接)
代碼如下,請大家指教指教

  1. Private Sub Command0_Click()
  2.     Dim xlApp As New Excel.Application
  3.     Dim xlBook As New Excel.Workbook
  4.     Dim xlSheet As Excel.Worksheet
  5.     Dim xlQuery As Excel.QueryTable
  6.     Dim i As Long
  7.     Dim intRows As Long
  8.     Dim rs As New ADODB.Recordset
  9.     Dim rst As New ADODB.Recordset
  10.     Dim sSQL As String
  11.     xlApp.DisplayAlerts = False
  12.     Set xlBook = xlApp.Workbooks.Open(CurrentProject.Path & "\test.xls")
  13.     xlBook.SaveAs (CurrentProject.Path & "" & Format(Now, "yyyymmddnn") & ".xls")
  14.     rs.CursorLocation = adUseClient
  15.     rst.CursorLocation = adUseClient
  16.     '------------------------------------
  17.     '分成兩種情況進行測試刪除查詢表的結(jié)果
  18.     '------------------------------------
  19.     '---------------------------------
  20.     '1.直接將記錄導(dǎo)入到Excel工作表A中
  21.     '---------------------------------
  22.     Set xlSheet = xlBook.Worksheets("A")
  23.     rs.Open "A", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
  24.     Set xlQuery = xlSheet.QueryTables.Add(rs, xlSheet.Range("A1"))
  25.     xlQuery.Refresh
  26.     xlQuery.Delete '結(jié)果刪除成功
  27.     Set xlQuery = Nothing
  28.     rs.Close
  29.     '------------------------------------
  30.     '2.特意采用循環(huán)導(dǎo)入工作表B,并分成小表
  31.     '------------------------------------
  32.     intRows = 1
  33.     Set xlSheet = xlBook.Worksheets("B")
  34.     sSQL = "SELECT DISTINCT PO FROM A ORDER BY PO"
  35.     rs.Open sSQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
  36.     Do While Not rs.EOF
  37.         sSQL = "SELECT * FROM A WHERE PO='" & rs.Fields("PO") & "'"
  38.         rst.Open sSQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
  39.         i = rst.RecordCount
  40.         Set xlQuery = xlSheet.QueryTables.Add(rst, xlSheet.Range("A" & intRows))
  41.         xlQuery.Refresh
  42.         xlQuery.Delete  '結(jié)果沒有刪除了查詢表
  43.         Set xlQuery = Nothing
  44.         intRows = intRows + i + 3
  45.         rst.Close
  46.         rs.MoveNext
  47.     Loop
  48.     rs.Close
  49.     xlBook.Save
  50.     xlApp.DisplayAlerts = True
  51.     Set rst = Nothing
  52.     Set rs = Nothing
  53.     xlApp.Visible = True
  54.     Set xlSheet = Nothing
  55.     Set xlBook = Nothing
  56.     Set xlApp = Nothing
  57. End Sub
復(fù)制代碼


    結(jié)果在Excel里發(fā)現(xiàn),部分連接存在,沒有完全刪除!




本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱

點擊這里給我發(fā)消息

2#
發(fā)表于 2017-7-6 14:41:15 | 只看該作者
我來試試
回復(fù)

使用道具 舉報

點擊這里給我發(fā)消息

3#
發(fā)表于 2017-7-6 14:46:08 | 只看該作者
我這里出錯

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
4#
 樓主| 發(fā)表于 2017-7-6 15:30:44 | 只看該作者

我沒有提示任何錯誤呀,導(dǎo)出的數(shù)據(jù)也正常,只是沒有徹底刪除查詢表
5#
發(fā)表于 2017-7-6 15:43:05 | 只看該作者
Henry D. Sy 發(fā)表于 2017-7-6 15:30
我沒有提示任何錯誤呀,導(dǎo)出的數(shù)據(jù)也正常,只是沒有徹底刪除查詢表

我這里也運行不了
6#
 樓主| 發(fā)表于 2017-7-6 20:15:11 | 只看該作者

難道是版本的問題
我是office 2016
7#
發(fā)表于 2017-7-7 07:39:00 | 只看該作者
Henry D. Sy 發(fā)表于 2017-7-6 20:15
難道是版本的問題
我是office 2016

我一直用的2010
8#
 樓主| 發(fā)表于 2017-7-7 08:23:50 | 只看該作者

更新一下,為2003版本,請幫忙測試!
9#
發(fā)表于 2017-7-7 08:44:10 | 只看該作者
Henry D. Sy 發(fā)表于 2017-7-7 08:23
更新一下,為2003版本,請幫忙測試!

還是不行





本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
10#
 樓主| 發(fā)表于 2017-7-7 10:11:09 | 只看該作者

重新引用一下excel
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 06:30 , Processed in 0.107120 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表