在VBA中为SQL设置日期格式

在VBA中为SQL设置日期格式,vba,ms-access,Vba,Ms Access,blow代码给了我这个错误信息 查询表达式qryTrResult0.TrDate中的日期存在语法错误 2020年1月1日和2020年11月1日 如果有人帮助我,我将不胜感激 Dim STRSQELECT As字符串 Dim DateFrom As Date Dim DateTo As Date DateFrom=InputBoxPlease,输入要创建报告的日期,按天显示销售报告 DateTo=InputBoxNow,输入要创建报告的日期,按天显示销售报告 strSqlSelect=选择qryt

blow代码给了我这个错误信息

查询表达式qryTrResult0.TrDate中的日期存在语法错误 2020年1月1日和2020年11月1日

如果有人帮助我,我将不胜感激

Dim STRSQELECT As字符串 Dim DateFrom As Date Dim DateTo As Date DateFrom=InputBoxPlease,输入要创建报告的日期,按天显示销售报告 DateTo=InputBoxNow,输入要创建报告的日期,按天显示销售报告 strSqlSelect=选择qrytresult0.InventoryNo、qrytresult0.gname、qrytresult0.Company、qrytresult0.DosageForm和_ qryTrResult0.强度,SumqryTrResult0.SumOfQtypackage作为SumOfQtypackage 0,SumqryTrResult0.SumOfQtySheet&_ 作为qtysheet0之和,qryTrResult0.TrDate,SumqryTrResult0.trasum作为trasum,SumqryTrResult0.SldSum作为SldSum,&_ SumqryTRResult 0.利润作为利润,qryQtyOfShtsInPac.QtySheet和_ 求和[qrytresult0]![SumOfQtypackage]*[QtySheet]+Sum[qryTrResult0]![SumOfQtySheet]\[QtySheet]作为SumOfQtypackage,&_ 求和[qrytresult0]![SumOfQtypackage]*[QtySheet]+Sum[qryTrResult0]![SumOfQtySheet]将[QtySheet]修改为SumOfQtySheet,&_ qryTrResult0.qryTrResult0内部联接qryqtyofshtsincpac在qryTrResult0.PrID=qryqtyofshtsincpac.PrID&_ 其中qryTrResult0.TrDate介于&FormatDateFrom、Short Date和&FormatDateTo、Short Date和_ 按qrytresult0.InventoryNo、qrytresult0.gname、qrytresult0.Company、qrytresult0.DosageForm、qrytresult0.Strength和_ qryTrResult0.TrDate,qryQtyOfShtsInPac.QtySheet,qryTrResult0.Expense; Me.RecordSource=strSqlSelect
尝试使用ISO序列作为格式:

"WHERE qryTrResult0.TrDate BETWEEN #" & Format(DateFrom, "yyyy\/mm\/dd") & "# AND #" & Format(DateTo, "yyyy\/mmm\/dd") & _

我猜SQL需要-或/作为日期分隔符。用户的区域设置可能会把这搞砸。更好地在表单上放置控件,以代替设置了日期格式的输入框。这将允许用户以自己的区域格式输入日期。但是,您不能也不想使用shortdate,因为这也会在其区域设置中生成日期格式。无论何时生成sql字符串日期,都必须使用ISO或USA日期格式。下面的答案可以解决这个问题。但是,由于输入框允许自由格式的文本,您最好使用两个设置为日期格式的文本框,以确保日期输入实际上是一个日期值,而不是字符串。此行中有几个错误:其中qryTrResult0.TrDate介于&FormatDateFrom、Short date和&FormatDateTo、Short date&_