我正在使用vb 6.0应用程序。我在查询中使用了替换功能。查询在访问时工作正常,但是当它在vb中运行时,它会给出错误:
"未定义的功能'替换'在表达中。运行时错误3085"。
我认为我缺少参考资料。我目前添加了以下参考文献。
'替换'位于where子句:
<head> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous"> </head> <body> <ul class="nav nav-pills"> <li class="nav-item"> <a class="nav-link active uppercase" href="#">Home</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle uppercase outline" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Pages</a> <div class="dropdown-menu"> <a class="dropdown-item uppercase aboutUs" href="#">About us</a> <a class="dropdown-item uppercase" href="#">Company</a> <a class="dropdown-item uppercase" href="#">Our process</a> <a class="dropdown-item uppercase" href="#">Services</a> <a class="dropdown-item uppercase" href="#">Contact us</a> <a class="dropdown-item uppercase FAQ" href="#">F.A.Q.</a> </div> </li> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> </body> </html>
以下完整查询给出了错误。
...WHERE ((DateValue(Replace(Invoice.InvoiceDate, ': ', ' '))
Between...
我使用replace函数,因为InvoiceDate是一个文本字段。因此,当我尝试将其转换为查询中的日期字段时,它给出了错误&#34;数据类型不匹配&#34;日期内的冒号是导致此错误的原因。这就是我需要更换结肠的原因。我无法更改数据库字段。所以这就是我所看到的解决方案。
InvoiceDate字段的数据如下所示
答案 0 :(得分:0)
这个功能对我来说没什么意义。正如评论者所问,您能解释为什么需要从InvoiceDate中删除“:”吗?正如@LukeG所说 - 添加数据示例可以帮助我们。
通过从日期的AM / PM部分删除“:”,即使替换工作,您的函数也会失败,因为您要求DateValue转换为现在未格式化为正确日期的字符串
你可以做几件事:
<强>编辑:强>
由于我们现在知道InvoiceDate不是日期字段,您可以通过取前10个字符并转换为日期来删除字段的时间部分:
(CDate(Left(Invoice.InvoiceDate,10)) Between #" & Format(dtpFrom.value, "yyyy/mm/dd") & "# And #" & Format(dtpTo.value, "yyyy/mm/dd") & "#)