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

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 2744|回復: 7
打印 上一主題 下一主題

[其它] 在Access中用代碼關(guān)不掉Excel程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2008-11-12 18:52:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
應網(wǎng)友要求做個歷遍工作簿中所有工作表的所有單元格的過程,
但問題出現(xiàn)在最后關(guān)不掉Excel程序。查詢答案倒是正確的。
附上代碼和附件,請各位兄弟幫忙,指教。
  1. Private Sub Command0_Click()
  2.     Dim Conn As New ADODB.Connection
  3.     Dim rs As New ADODB.Recordset
  4.     Dim i, j, k As Integer
  5.     Dim strName, strSQL, str As String
  6.     Dim xlApp As New Excel.Application
  7.     Dim xlBook As Excel.Workbook
  8.     Dim xlSheet As Excel.Worksheet
  9.     If IsNull(Me.Text3) Then
  10.         MsgBox "Enter then Data to Find,Please!!"
  11.         Me.Text3.SetFocus
  12.         Exit Sub
  13.     End If
  14.     strName = CurrentProject.Path & "\book1.xls"
  15.     Set xlBook = xlApp.Workbooks.Open(strName)
  16.     Conn.Open _
  17.             "Provider=Microsoft.Jet.OLEDB.4.0; Persist Security Info=False;Data Source=" _
  18.           & strName & "; Extended Properties='Excel 8.0;HDR=Yes'"
  19.     For k = 1 To xlBook.Sheets.Count
  20.         strSQL = "select * from [" & xlBook.Sheets(k).Name & "$]"
  21.         rs.Open strSQL, Conn, adOpenKeyset, adLockReadOnly
  22.         Do While Not rs.EOF
  23.             For i = 1 To rs.Fields.Count - 1
  24.                 If rs.Fields(i) = Me.Text3 Then
  25.                     str = xlBook.Sheets(k).Name & "  " & rs.Fields(0) & i
  26.                     j = 1
  27.                     Exit Do
  28.                 End If
  29.             Next
  30.             rs.MoveNext
  31.         Loop
  32.         rs.Close
  33.         If j = 1 Then
  34.             Exit For
  35.         End If
  36.     Next
  37.     If Len(str) <> 0 Then
  38.         MsgBox str
  39.     Else
  40.         MsgBox "Nothing Was Finded"
  41.     End If
  42.     Conn.Close
  43.     Set Conn = Nothing
  44.     Set rs = Nothing
  45.     xlBook.Close
  46.     Set xlBook = Nothing
  47.     xlApp.Quit
  48. End Sub
復制代碼

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
2#
 樓主| 發(fā)表于 2008-11-12 18:57:58 | 只看該作者
另:
代碼中的一句
str = xlBook.Sheets(k).Name & "  " & rs.Fields(0) & i
中,原來的 i 是 用 rs.Fields(i).Name 來的,但當查詢的是第一個工作表(附件中的2007-19表)時,答案正確,而其他工作表出現(xiàn)錯誤的答案。很奇怪。后來因為字段名正好是與 i 同值,所以就直接用 i 代替。
但現(xiàn)在也找不出問題的真正原因。

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

3#
發(fā)表于 2008-11-12 19:54:06 | 只看該作者
會不會有其它與excel相關(guān)的對象沒有正常關(guān)閉.
你試試先將 xlApp.visible設(shè)置可見
看看最后是否對象完整退出了
4#
 樓主| 發(fā)表于 2008-11-12 20:05:57 | 只看該作者
好的,謝謝站長先。
5#
 樓主| 發(fā)表于 2008-11-12 20:16:39 | 只看該作者
原帖由 dddddd 于 2008-11-12 20:05 發(fā)表
好的,謝謝站長先。


加了xlApp.Visible = True
能看到excel程序加載著,和退出。
但進程里仍有excel

本帖子中包含更多資源

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

x
6#
 樓主| 發(fā)表于 2008-11-12 20:20:46 | 只看該作者
輸入 7177 按find可以得到正確的 2007-27 表 坐標 J2 的答案。
7#
 樓主| 發(fā)表于 2008-11-12 20:32:49 | 只看該作者
有時還會出現(xiàn)下面的對話框

本帖子中包含更多資源

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

x
8#
 樓主| 發(fā)表于 2008-11-13 00:21:18 | 只看該作者
[:28] [:28]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

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

GMT+8, 2025-7-13 05:09 , Processed in 0.118180 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表