2013-04-25 145 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