Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

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

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

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

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

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



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

  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.     '分成兩種情況進(jìn)行測(cè)試刪除查詢表的結(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),部分連接存在,沒有完全刪除!




本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)

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

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

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

使用道具 舉報(bào)

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

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

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)

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

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

我這里也運(yùn)行不了
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版本,請(qǐng)幫忙測(cè)試!
9#
發(fā)表于 2017-7-7 08:44:10 | 只看該作者
Henry D. Sy 發(fā)表于 2017-7-7 08:23
更新一下,為2003版本,請(qǐng)幫忙測(cè)試!

還是不行





本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)

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

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

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-13 08:32 , Processed in 0.113224 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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