目的是通過ACCESS庫中的資料進行查找溫度為340時的物性引數并輸出到作業表中
Sub 獲取物性引數()
Dim cnn As New Connection, rst As Recordset, fld As Field
Dim strSq1 As String, i As Long, strConn As String
strSq1 = "SELECT*FROM [CO278] WHERE [Temperature]='340'"
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\DELL\Documents\CO2.mdb"
cnn.ConnectionString = strConn
cnn.Open
Set rst = cnn.Execute(strSq1)
With Worksheets("sheet1")
i = 1
For Each fld In rst.Fields
.Cells(1, i) = fld.Name
Next
j = 1
Do While Not rst.EOF
i = 1
j = j + 1
For Each fld In rst.Fields
.Cells(j, i) = fld.Value
i = i + 1
Next
rst.MoveNext
Loop
End With
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
End Sub
不知道問題出在那里
uj5u.com熱心網友回復:
是不是你那個星號兩邊缺少空格?
uj5u.com熱心網友回復:
樓上正解!!uj5u.com熱心網友回復:
是嗎,那看來我蒙對了一回。
uj5u.com熱心網友回復:
不是,添加空格后還是出現那個錯誤uj5u.com熱心網友回復:
表 [CO278] 沒有欄位 [Temperature]uj5u.com熱心網友回復:
把 Set rst = cnn.Execute(strSq1) 改為 rst.Open strSq1, cnn 試試。uj5u.com熱心網友回復:
strSq1 = "SELECT*FROM [CO278] WHERE [Temperature]='340'"溫度是字串型別的欄位么?
uj5u.com熱心網友回復:
Dim cnn As New Connection, rst As Recordset, fld As FieldDim strSq1 As String, i As Long, strConn As String
strSq1 = "SELECT * FROM [CO278] WHERE [Temperature]=340"
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\DELL\Documents\CO2.mdb"
cnn.ConnectionString = strConn
cnn.Open
strsql = "select * from [jishijilu]" ' where gyh_riqi='" & "1000-061210" & "' group by gyh_riqi"
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\wd.mdb;Persist Security Info=False"
cnn.Open
rs.CursorLocation = adUseClient
rs.Open strsql, cnn, adOpenDynamic, adLockOptimistic
請參考所供代碼測驗
uj5u.com熱心網友回復:
1、欄位名稱是否拼寫正確2、欄位型別是否字串型別(不是'340'去掉單引號)
uj5u.com熱心網友回復:
我之前遇到過同意的問題,檢查一下資料庫中欄位名到底是不是“Temperature”,有沒有字母不一致的地方uj5u.com熱心網友回復:
你可以把這個SQL陳述句直接粘貼到你的資料庫中執行一下,如果能夠正常運行,說明SQL陳述句沒錯,如果提示引數缺失,那肯定是拼錯無疑了。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/42090.html
標籤:VBA
