以下のクエリを実行すると、クエリ式に構文エラーが発生します。 この正確なコードは、sqlclientを使用していて、SQL Server .mdfファイルから読み取ったときに機能しました。しかし、今、私はMS Accessの.mdbファイルから読み込んだし、それは私に不足しているオペレータのこのエラーを与えている見つからない演算子sql oledb vb.net
Dim Adapter As New OleDbDataAdapter
Dim Data As New DataTable
Dim SQL As String
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Shantara Production IT.mdb")
Dim cmd As New OleDbCommand()
grdvbatchprodn.Visible = True
SQL = "SELECT [KN - ProductionOrderDetails].BatchNo,
[GN - EntityMaster].EntityName,
[FG - End Product Codes].ProductCode,
SUM([KN - ProductionOrderDetails].ProductionQty) AS [Batch Total Panels],
[KN -Special Instructions Master].SpecialInstructionDetail,
[KN - ProductionOrderHeader].KnittBatchComplete
FROM [KN - ProductionOrderDetails] INNER JOIN [KN - KnittingOrder]
ON [KN - ProductionOrderDetails].KnittingOrderID = [KN - KnittingOrder].KnittingOrderID
INNER JOIN [GN - EntityMaster]
ON [GN - EntityMaster].EntityID = [KN - KnittingOrder].EntityID
INNER JOIN [KN -Special Instructions Master]
ON [KN -Special Instructions Master].SpecialInstructionID = [KN - KnittingOrder].SpecialInstructionID
INNER JOIN [KN - ProductionOrderHeader]
ON [KN - ProductionOrderHeader].BatchNo = [KN - ProductionOrderDetails].BatchNo
INNER JOIN [FG - End Product Codes]
ON [FG - End Product Codes].ProductID = [KN - ProductionOrderHeader].ProductID
INNER JOIN [KN - KnittingDetailsHeader]
ON [KN - KnittingDetailsHeader].BatchNo = [KN - ProductionOrderDetails].BatchNo
WHERE [KN - ProductionOrderHeader].KnittBatchComplete = 0
GROUP BY [KN - ProductionOrderDetails].BatchNo, [GN - EntityMaster].EntityName, [FG - End Product Codes].ProductCode, [KN -Special Instructions Master].SpecialInstructionDetail, [KN - ProductionOrderHeader].KnittBatchComplete
ORDER BY [KN - ProductionOrderDetails].BatchNo, [GN - EntityMaster].EntityName;"
con.Open()
cmd.Connection = con
cmd.CommandText = SQL
Adapter.SelectCommand = cmd
Adapter.Fill(Data)
grdvbatchprodn.DataSource = Data
grdvbatchprodn.DataBind()
End Sub
エラーは次のとおりです。
System.Data.OleDb.OleDbException発生したHRESULT = 0x80040E14
メッセージ=構文エラークエリ式における(欠落演算子)「[KN - ProductionOrderDetails] .KnittingOrderID = [KN - KnittingOrder] .KnittingOrderID内部結合[GN - EntityMaster] ON [GN - EntityMaster] .EntityID = [ KN - KnittingOrder] .EntityID INNER JOIN [KN - 特別命令マスター] ON [KN -Speci '。
ソース= Microsoft AccessデータベースエンジンのStackTrace:
ただ、かなり扱いとなったテキストのこの壁をフォーマットし、エイリアスを使用してのわずかなビットを付加するアドバンス
私は眼球を取り出してポップアップしたいと思っています。エイリアスの使い方を学んで、その厄介なことを繰り返す必要はありません。 –
ステップバイステップでクエリから部品を削除します。問題が解消されると、問題の行が見つかりました。 – jarlh
@SeanLange最初にAlliasesを使用しましたが、問題はmsアクセスではサポートされていないため、このようにしなければなりませんでした – Deepak