设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4979|回复: 4
打印 上一主题 下一主题

[模块/函数] 方法一运行正常,方法二提示“Access运行时错误'3061':参数不足,期待是3”,请问错...

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2019-1-31 08:31:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 真主 于 2019-1-31 12:17 编辑

方法一运行正常,方法二提示“Access运行时错误'3061':参数不足,期待是3”,请问错在哪里?
问题出现在Set Va_myrst = Va_mydb.OpenRecordset(Va_Str)
所以变量本来主字母缩写的,为了大家能看明白,所以改成了中文
方法一:
  1. Public Function VH_InTime(当日前日 As Integer, 可提前时间 As Date, 应上班时间 As Date, 可延后时间 As Date, 查询表名 As String, 查询表用户ID As String, 查询表刷卡日期 As String, 查询表刷卡时间 As String, 排班表人员ID As Integer, 排班表日期 As Date) As String
  2.     If 当日前日 = 0 And 可提前时间 <= 应上班时间 <= 可延后时间 Then
  3.         VH_InTime = DFirst(查询表刷卡时间, 查询表名, 查询表用户ID & "=" & 排班表人员ID & "and " & 查询表刷卡日期 & "=#" & 当日前日 + 排班表日期 & "#" & " and " & 查询表刷卡时间 & ">=#" & 可提前时间 & "#" & " and " & 查询表刷卡时间 & "<=#" & 可延后时间 & "#")
  4.     End If
  5. End Function
复制代码

方法二:
  1. Public Function VH_InTime(当日前日 As Integer, 可提前时间 As Date, 应上班时间 As Date, 可延后时间 As Date, 查询表名 As String, 查询表用户ID As String, 查询表刷卡日期 As String, 查询表刷卡时间 As String, 排班表人员ID As Integer, 排班表日期 As Date) As Date '上班时间查找
  2. Dim Va_mydb As DAO.Database
  3. Dim Va_myrst As DAO.Recordset
  4. Dim Va_Str As String
  5. Set Va_mydb = CurrentDb

  6.     If 当日前日 = 0 And 可提前时间 <= 应上班时间 <= 可延后时间 Then
  7.         Va_Str = "Select " & 查询表刷卡时间 & " From " & 查询表名 & " Where " & 查询表用户ID & "=" & 排班表人员ID & " And " & 查询表刷卡日期 & "=#" & 当日前日 + 排班表日期 & "# and " & 查询表刷卡时间 & ">=#" & 可提前时间 & "# and " & 查询表刷卡时间 & "<=#" & 可延后时间 & "# Order By " & 查询表刷卡日期 & "," & 查询表刷卡时间
  8.     End If
  9. Set Va_myrst = Va_mydb.OpenRecordset(Va_Str)
  10. VH_InTime = Va_myrst(0)
  11. End Function
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2019-1-31 12:13:49 | 只看该作者
出错具体是哪一句呢

点击这里给我发消息

3#
 楼主| 发表于 2019-1-31 12:18:15 | 只看该作者
tmtony 发表于 2019-1-31 12:13
出错具体是哪一句呢

Set Va_myrst = Va_mydb.OpenRecordset(Va_Str)
在这句上
4#
发表于 2019-2-1 09:34:24 | 只看该作者
很显然,字符串和日期不分。SQL语句都写错了,有啥好说的?
——第一个为啥能正常,其实我很奇怪。
不知道是否使用DFirst的缘故。
5#
发表于 2019-2-1 12:50:09 | 只看该作者
本帖最后由 cgsilicone 于 2019-2-1 20:29 编辑

SQL语句有错无疑,“参数不足”,可能是SQL中用到的字段名,在表中却没有这样的字段名。
函数中SQL语句的字段名是变量,拷贝你的代码完全没有修改,测试了一下,没有发现错误,函数没有问题,错误可能在使用函数VH_InTime时,参数表中的数据错误。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-20 13:45 , Processed in 0.145800 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表