我想用ADO+SQL陳述句查詢EXCEL,但得不到結果,大俠幫忙查找一下原因,謝謝
Public xlApp As Excel.Application '定義EXCEL類
Public xlBook As Excel.Workbook '定義工件簿類
Public xlsheet As Excel.Worksheet '定義作業表類
Private Sub Command1_Click()
FileName = "倉庫.xls"
Set xlApp = GetObject(, "Excel.Application") '判斷Excel是否打開
xlApp.WindowState = xlMaximized
Set xlBook = xlApp.Workbooks.Open(App.Path & "\" & FileName) '打開工件簿檔案
xlApp.Visible = True
Set cnn = CreateObject("ADODB.Connection")
Set rst2 = CreateObject("ADODB.Recordset")
' Set xlsheet = xlBook.Worksheets(4)
' xlsheet.Unprotect "123abc"
' xlsheet.Range("J:J").ClearContents
cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties=Excel 8.0;data source=" & App.Path & "\" & FileName
' StrSQL = "SELECT * FROM [" & Sh.Name & "$]"
StrSQL = "SELECT * FROM [結存$] where 物料名稱='JACK IN THE BOX'"
StrSQL = "SELECT * FROM [結存$] "
' Set rst2 = cnn.Execute("SELECT 物料名稱,規格型號,出庫地點,出庫人 FROM [出庫$] where 物料名稱 ='TARGET.COM'and 出庫方式='采購入庫'")
Set rst2 = cnn.Execute(StrSQL)
Set xlsheet = xlBook.Worksheets(2)
xlsheet.Range("a5").CopyFromRecordset rst2
For i = 1 To 2 'rst2.Fields.Count '獲得SQL結果的列標題
' MsgBox rst2.Fields(i - 1).Name '欄位名,
' MsgBox rst2.Fields(i - 1) '欄位名,
Next
End Sub
跟蹤沒有提示錯誤,我錯了哪里? 謝謝
uj5u.com熱心網友回復:
好像是你的與
沖突,你打開excel檔案想用它作為資料源可能不行,我忘記了,可能是這樣的你試試吧
uj5u.com熱心網友回復:
再有 你判斷是否打開excel后 如果沒有打開是不是要打開一個呢
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application") '判斷Excel是否打開
If Err.Number = 429 Then Set xlApp = CreateObject("Excel.Application")
uj5u.com熱心網友回復:
Public xlApp As Excel.Application '定義EXCEL類
Public xlBook As Excel.Workbook '定義工件簿類
Public xlsheet As Excel.Worksheet '定義作業表類
Private Sub Command1_Click()
FileName = "倉庫.xls"
Set cnn = CreateObject("ADODB.Connection")
Set rst2 = CreateObject("ADODB.Recordset")
cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties=Excel 8.0;data source=" & App.Path & "\" & FileName
' StrSQL = "SELECT * FROM [" & Sh.Name & "$]"
StrSQL = "SELECT * FROM [結存$] where 物料名稱='JACK IN THE BOX'"
StrSQL = "SELECT * FROM [結存$] "
' Set rst2 = cnn.Execute("SELECT 物料名稱,規格型號,出庫地點,出庫人 FROM [出庫$] where 物料名稱 ='TARGET.COM'and 出庫方式='采購入庫'")
Set rst2 = cnn.Execute(StrSQL)
For i = 1 To 2 'rst2.Fields.Count '獲得SQL結果的列標題
MsgBox rst2.Fields(i - 1).Name '欄位名,
MsgBox rst2.Fields(i - 1) '欄位名,
Next
rst2.Close
Set rst2 = Nothing
cnn.Close
Set cnn = Nothing
End Sub
要將結果放到作業表中,可以再打開另一個作業薄放進去,不能放到查詢的作業薄中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/127681.html
標籤:VB基礎類
上一篇:制作U盤自動運行程式
下一篇:請教shell cmd打回車
