Date vb2010中MS-Access查询涉及日期范围

Date vb2010中MS-Access查询涉及日期范围,date,range,Date,Range,我束手无策。有很多论坛找不到 我正在尝试使用VB 2010 System.data.OleDb对象从Access db查询数据。 代码如下: Dim AccessCommand As New System.Data.OleDb.OleDbCommand("SELECT format( dateadd(""m"", -e.tenure, e.expirydate), ""yyyy-mm-dd"") as Expired, n.customerid , e.type as Description,

我束手无策。有很多论坛找不到

我正在尝试使用VB 2010 System.data.OleDb对象从Access db查询数据。 代码如下:

Dim AccessCommand As New System.Data.OleDb.OleDbCommand("SELECT format( dateadd(""m"", -e.tenure, e.expirydate), ""yyyy-mm-dd"")  as Expired, n.customerid , e.type as Description, (select s.type from servicetype s where s.servicecode = e.servicecode) as CodedType,  (select v.servicecode from servicetype v where v.servicecode = e.servicecode) as ServiceCode, e.totalamount INTO [Excel 12.0 Xml;DATABASE=d:\BookTest.xlsx;HDR=Yes;].[Sheet1] " _
        & " From notification n, notificationservice e where " _
        & " e.notificationid = n.notificationid " _
        & " and mid(n.notificationid, 1,2) ='RN' " _
        & " and jn_duplicate = 0 " _
        & " and dateadd(""m"", -e.tenure, e.expirydate) between @1 and @2 " _
        & " and ( n.salesid is null or ( n.salesid is not null and not exists 
          ( select paymentid from payment p where p.invoiceid = n.salesid) ))  ", _
        m_conn)


        AccessCommand.Parameters.Add("@1", OleDbType.Date).Value = New DateTime(2013, 7, 21) '"#20-jul-2013#"  '(InputBox("Enter Expiry DateFrom in dd-mon-yyyy", "", "", 100, 100))
        AccessCommand.Parameters.Add("@2", OleDbType.Date).Value = New DateTime(2013, 7, 31) '"'#30-jul-2013#"  '(InputBox("Enter Expiry DateTo in dd-mon-yyyy", "", "", 100, 100))
但尝试尽可能多的组合,我总是得到错误,如没有指定数据等

我的目标是要求用户在查询中输入两个日期,这两个日期将构成日期From和Date to,并在日期之间

非常感谢您的帮助

谢谢 Cho来自

OLE DB的.NET Framework数据提供程序和ODBC的.NET Framework数据提供程序不支持将参数传递给SQL语句或存储过程的命名参数。在这种情况下,必须使用问号(?)占位符,如下例所示


换句话说,对于OleDB,您需要将@1和@2之间的
替换为
介于?和?
之间,并且只依赖于参数的顺序。

“…错误,如未指定数据等”有点不清楚,您是否可以发布准确的错误消息?错误是“没有为一个或多个必需参数提供值”我包含的异常捕获捕获捕获了此错误。非常感谢,但我的问题仍然没有解决,因为在通过inputbox获取的日期后附加的#字符仍然为空。但是我在查询中输入了完整的日期。。。日期在2013年7月21日之间,有效…我认为参数化查询时不应该有
,请尝试仅使用日期。