Search code examples
ms-accessselectvb6inner-join

Enter parameter value but I've already included one in the query


I've got a SQL query in my VB6 project that is performing a three-way INNER JOIN in an Ms-Access database.

The VB6 query is:

SQL = "SELECT popsLines.stockCode, popsLines.orderNumber, popsOrders.dateOrdered, popsReceipts.dateReceived, popsReceipts.reference" & _
            " FROM (popsOrders INNER JOIN popsLines ON popsOrders.orderNumber = popsLines.orderNumber)" & _
            " INNER JOIN popsReceipts ON popsOrders.orderNumber = popsReceipts.orderNumber" & _
            " WHERE (([WHERE popsLines].[stockCode]=" & sqlString(m_sStockCode) & "));"

This wasn't working, it returned an error saying

No value given for one or more required parameters

So then next thing I did was copy the value in the SQL variable and paste it into an Access query, with the value of the m_sStockCode parameter.

SELECT popsLines.stockCode, popsLines.orderNumber, popsOrders.dateOrdered, popsReceipts.dateReceived, popsReceipts.reference 
FROM (popsOrders INNER JOIN popsLines ON popsOrders.orderNumber = popsLines.orderNumber)
INNER JOIN popsReceipts ON popsOrders.orderNumber = popsReceipts.orderNumber WHERE (([WHERE popsLines].[stockCode]="010010003"));

When executing this, it said

Enter Parameter Value: WHERE popsLines.StockCode

Why isn't it accepting the query as it is?

I've also tried changing there WHEREclause to

(( WHERE [popsLines].[stockCode]="010010003"));

but got

Syntax error (missing operator) in query expression '((WHERE [popsLines].[stockCode]="010010003"))'


Solution

  • The last part - your WHERE clause - is garbled. It should read:

    .. WHERE ([popsLines].[stockCode]='010010003');