2013-04-25 58 views
-1

我正在將程序從Visual Basic 6更新到Visual Studio 2010,當然,我已經創建了很多如此解決的問題。Select max visual studio 2010

我正在使用具有相同鍵(指示)的四個表的Access數據庫。

如果我使用的代碼如下,我可以從CodDekafix表的最後一條記錄:

Private Sub cmdLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLast.Click 
    Dim Con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DEKAFIX\Consulta Dekafix\dekafix.mdb") 
    Dim cmd As New OleDbCommand() 
    Con.Open() 
    sql = "Select * From Indice Where CodDekafix=(Select max(CodDekafix) From Indice)" 

但是如果我想要得到所有所有表中的結果使用相同的密鑰(指數之)與如下所示更改程序不起作用。

sql = "Select * from Indice, dekafix1, dekafix2, dekafix3" _ 
     & " where CodDekafix=(Select max(CodDekafix) From Indice) and" _ 
     & " Indice.CodDekafix = dekafix1.CodDekafix and" _ 
     & " dekafix1.CodDekafix=dekafix2.CodDekafix and" _ 
     & " dekafix2.CodDekafix=dekafix3.CodDekafix and" _ 
     & " ORDER BY Indice.CodDekafix" 
+2

你得到的錯誤是什麼? – 2013-04-25 13:02:10

+4

我想我看到了問題,所以我在下面提供了一個答案。但總的來說,不是告訴我們某些「不起作用」,而是讓我們猜測你遇到麻煩的地方,最好告訴我們你得到了什麼錯誤信息或異常,以及它是怎麼回事。 – 2013-04-25 13:32:37

回答

4

第二個代碼示例中的SQL代碼無效。當我們剔除表示VB代碼字符串格式化,你會得到這樣的:

Select * from Indice, dekafix1, dekafix2, dekafix3 
where CodDekafix=(Select max(CodDekafix) From Indice) and 
Indice.CodDekafix = dekafix1.CodDekafix and 
dekafix1.CodDekafix=dekafix2.CodDekafix and 
dekafix2.CodDekafix=dekafix3.CodDekafix and 
ORDER BY Indice.CodDekafix 

您這裏有兩個問題:

1)有一個額外的「和」的ORDER BY子句之前。去掉它。

2)WHERE子句的第一行有一個對 CodDekafix的模糊引用 - 您需要指定來自哪個表。 用Indice.CodDekafix代替CodDekafix應該有所斬獲。

sql = "Select * from Indice, dekafix1, dekafix2, dekafix3" _ 
    & " where Indice.CodDekafix=(Select max(CodDekafix) From Indice) and" _ 
    & " Indice.CodDekafix = dekafix1.CodDekafix and" _ 
    & " dekafix1.CodDekafix=dekafix2.CodDekafix and" _ 
    & " dekafix2.CodDekafix=dekafix3.CodDekafix" _ 
    & " ORDER BY Indice.CodDekafix" 
+0

我刪除了exta「和」但錯誤是一樣的:「在查詢表達式」'CodDekafix =(Select max(CodDekafix)From Indice)和Indice.CodDekafix = dekafix1.CodDekafix和dekafix1.CodDekafix中的sintax錯誤= dekafix2.CodDekafix和dekafix2.CodDekafix = dekafix3.CodDekafix和'。 – user2319722 2013-04-25 14:53:17

+0

根據您提供的錯誤消息,額外的「and」仍在您的查詢中。 – 2013-04-25 15:50:48

+0

對不起。你是對的。 – user2319722 2013-04-25 16:27:24