2013-04-29 90 views
0
<%Dim adoCon 
Dim rsLogbook 
Dim strSQL 
Set adoCon = Server.CreateObject("ADODB.Connection") 
adoCon.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databasename.mdb") 
Set rsLogbook = Server.CreateObject("ADODB.Recordset") 
strSQL = "SELECT id, OtherFieldNamesGoHere FROM TableName;" 
rsLogbook.Open strSQL, adoCon 
%> 

這是我用來將數據庫鏈接到我的asp頁面的代碼。我想要做的是顯示數據庫的最後一條記錄(目前有52條記錄,但當我添加更多記錄時會改變),所以我認爲這將起作用的最佳方式是找到最後或最大「id」是每個記錄的唯一字段,並且是訪問數據庫中的自動編號。但我無法找到找到最大ID並顯示它的方法。如果您有任何建議,任何其他更好的方法也可以。在此先感謝查找並顯示ADO conn中的最後一個記錄集

我曾嘗試使用下面的代碼嘗試,但它給我下面列出的錯誤

<%Dim adoCon 
Dim rsLogbook 
Dim strSQL 
Set adoCon = Server.CreateObject("ADODB.Connection") 
adoCon.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databasename.mdb") 
Set rsLogbook = Server.CreateObject("ADODB.Recordset") 
strSQL = "SELECT id, OtherFieldNamesGoHere FROM TableName;" 
rsLogbook.CursorLocation=adUseServer 
rsLogbook.Open strSQL, adoCon 
rsLogbook.MoveLast 
%> 

ADODB.Recordset錯誤「800a0bb9」

參數的錯誤類型,是超出可接受的範圍,或彼此衝突。

+1

您試過「SELECT MAX(id)as max_id,OtherFieldNam esGoHere FROM TableName;「 ??? – Rafael 2013-04-29 14:39:42

回答

1

如果它是一個Access(或SQL Server)的數據庫,你可以使用像

"SELECT top 1 id, OtherFieldNamesGoHere FROM TableName ORDER by id desc" 

查詢然後,你可以只使用代碼在你的第一個例子,而不將CursorLocation MoveLast

對於記錄,OLEDB連接字符串通常優於ODBC,例如

"PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("databasename.mdb") 
+0

告訴我在FROM子句中有語法錯誤。我似乎無法找到解決這個問題。任何幫助或建議? – user2331814 2013-04-30 09:40:09

+0

不好意思我的壞。這是一個愚蠢的錯誤,你的代碼是完美的。隊友的歡呼聲 – user2331814 2013-04-30 09:46:22