2) 如果你沒有將 ADO Library 嵌入
在宣告時你就不能宣告物件變數為ADODB .Connection ( ex. Dim DB As ADODB.Connection)
而只能宣告為一般物件變數 (Dim DB As Object)
建立時你不能使用 Set DB = New ADODB.Connection 這樣的語法
而要用 DB = CreateObject("Adodb.Connection")作者: Min 時間: 2012-4-29 18:36
'引用 Microsoft ActiveX Data Objects 2.x Library
Dim Cnnl As New ADODB.Connection '你是不是忘了new
Cnnl.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:\TEST.mdb; "作者: toxin 時間: 2012-5-2 09:11
回復 5#alexliou
ok了
感謝大大
可以另外詢問一下
要查詢排序後第一筆資料
網路上講access可以用一般sql指令
但是下了
SELECT TOP 1 件號, 單價, 廠商 FROM 單價明細 WHERE 件號 = '00002E-A' ORDER BY 1 DESC
跟
SELECT * 件號, 單價, 廠商 FROM 單價明細 WHERE 件號 = '00002E-A' ORDER BY 1 DESC
一樣都會出現3筆排序過的資料= =
3.您也可以改變Order by的欄位, ex .改為 Order by 廠商
如果同一件號同一廠商只有一筆紀錄
那就會只傳回一筆紀錄
如果同一件號同一廠商還是有多筆紀錄
但價格都不同
就可以再增加一個order by欄位
如 Order by 廠商, 單價 desc作者: toxin 時間: 2012-5-11 09:39
感謝alexliou大大回覆
說明的很清楚...但是依資料輸入情況來講...好像不太能夠靠其他條件做排序找到所需要的資料
所以只好全部都先寫出來了....要靠inputbox來決定要那一筆資料...
不過碰到一件怪事...把Select top 1改成Select *
就會碰到錯誤= =...所以暫時先下Select top 100(因某些件號明明有好幾筆資料卻只出現一筆)作者: alexliou 時間: 2012-5-11 15:45
本帖最後由 alexliou 於 2012-5-12 06:29 編輯
回復 toxin alexliou 發表於 2012-5-11 15:44
* 代表所有的欄位
你已經寫了要選取哪些欄位
所以 * 就不需要了
要改成
SELECT 件號 , 單價, 廠商 FROM 單價明細 WHERE 件號 = '00002E-A' ORDER BY 1 DESC
或是
SELECT * FROM 單價明細 WHERE 件號 = '00002E-A' ORDER BY 1 DESC
PS. ORDER BY 1 DESC 似乎也不需要
因為Where 條件已指定件號'00002E-A'
查詢結果只有一種件號
就沒有排序的必要了作者: toxin 時間: 2012-5-11 15:59