I am getting following error:
Syntax error (missing operator) in query expression 'tblUnit.Unit_DescFROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit]'. andthis one Syntax error in FROM clause.
Part of code that is failing:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim connetionString As String
Dim connection As OleDb.OleDbConnection
Dim oledbAdapter As New OleDb.OleDbDataAdapter
Dim ds As New DataSet
Dim i As Integer
Dim sql As String
connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=dbInventor.mdb"
connection = New OleDb.OleDbConnection(connetionString)
connection.Open()
sql = "SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc" _
& "FROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit];"
oledbAdapter.SelectCommand = New OleDb.OleDbCommand(sql, connection)
oledbAdapter.Fill(ds)
oledbAdapter.Dispose()
connection.Close()
For i = 0 To ds.Tables(0).Rows.Count - 1
MsgBox(ds.Tables(0).Rows(i).Item(1))
Next
End Sub
End Class
答案 0 :(得分:2)
You should add a space before FROM
like this :
sql = "SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc" _
& " FROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit];"
答案 1 :(得分:2)
sql = "SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc " _
& "FROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit];"
or
sql = "SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc" _
& " FROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit];"
答案 2 :(得分:0)
You can also use an xml literal to format long or complex SQL however you like:
Dim sql = <sql>
SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc
FROM tblUnit INNER JOIN tblStocks ON
tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit]
WHERE Foo=@p1
AND Bar=@p2
</sql>.Value
Console.WriteLine(sql)
Be sure to include the .Value