看王國榮的VB資料庫設計,范例有一段調不過去了,就在我本上不行,換自己的臺式機就OK。。。。求解
Private Sub Command2_Click()
List1.Clear
' 搜尋所有「成交量」欄位大于10000的股票,使用FindLast及FindPrevious
criteria = "成交量 > 10000"
ret = FindLast(Adodc1.Recordset, criteria) '<-------------在這提示型別不匹配
While ret
List1.AddItem Adodc1.Recordset("股票名稱") & " = " & _
Adodc1.Recordset("成交量")
ret = FindPrevious(Adodc1.Recordset, criteria)
Wend
End Sub
Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & App.Path & "\\stock01.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = "股票行情表"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
End Sub
’Find.bas
' 從最后一筆記錄開始向上搜尋
Function FindLast(rs As ADODB.Recordset, ByVal criteria As String)
On Error Resume Next
rs.MoveLast
rs.Find criteria, , adSearchBackward
FindLast = Not rs.BOF And Err.Number = 0
End Function
uj5u.com熱心網友回復:
你沒有定義變數型別,系統會默認為變體型別dim criteria as string
criteria = "成交量 > 10000"
uj5u.com熱心網友回復:
你說的我試過了 不是那個毛病 要不不會在兩臺機器上有不同的表現 我懷疑是因為某個DLL插件的問題 因為我的臺式機是安裝版的 本是ghost版
哪位大仙有其他建議啊!
uj5u.com熱心網友回復:
你做安裝程式了嗎?不然兼容性會很差的。uj5u.com熱心網友回復:
Dim ret As BooleanFunction FindLast(rs As ADODB.Recordset, ByVal criteria As String) As Boolean
On Error Resume Next
rs.MoveLast
rs.Find criteria, , adSearchBackward
FindLast = Not rs.BOF And Err.Number = 0
End Function
uj5u.com熱心網友回復:
帥哥。。BCCN 那個也是我問的好不好!別貼過來了uj5u.com熱心網友回復:
程式報錯中斷時候在立即視窗里輸出一下這幾個變數的型別,?typename(ret);typename(Adodc1.Recordset) ; TypeName(criteria)
這樣就知道哪個變數的型別出問題了
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/150650.html
上一篇:求大仙幫忙。。。
