参数太少。预期为1-但我有一个
|
因此,我最近一直在研究VBA脚本,以将学生病历的整个数据库从他们的旧的单表,68字段的平面系统转移到具有24个相关表的新动态系统。
前几张桌子没有问题,但是后来我遇到了。引发错误的代码行是:
Set rstFrom = CurrentDb.OpenRecordset(\"select \" & Flat & \".Student,\" & Flat & \".School,\" & Flat & \".Social,\" & Flat & \".FamilyHist from \" & Flat & \" WHERE 1=1\")`
Flat
是一个字符串,用于存储平面数据库的名称(这是因为我正在使用虚拟数据库,因此它们将需要一种方便快捷的方法来修改我制作的代码以在真实物体上工作)
rstFrom
只需要包含68字段表中与我当前要复制到的表相关的列(在这种情况下,FamilyHistory表实际上只需要studentID
和FamilyHistory
)-请注意原始表格未分配唯一的ѭ3,因此我必须使用姓名,学校和社交名来确定我正在与同一个孩子打交道,并查找他们的studentID
当这行代码运行时,出现以下错误:
Run-time error \'3061\':
Too few parameters. Expected 1.
显然我有1个参数,它是:
\"select \" & Flat & \".Student,\" & Flat & \".School,\" & Flat & \".Social,\" & Flat & \".FamilyHist from \" & Flat & \" WHERE 1=1\"
(解析后为):
\"select Demos.Student,Demos.School,Demos.Social,Demos.FamilyHist from Demos WHERE 1=1\"
使用Access VBA时需要1 = 1,否则,它仅返回匹配的第一条记录,而不是所有匹配的记录。
还有其他人有解决过的相同问题吗?我确实注意到一件事。当我将参数更改为:
\"select Demos.Student from Demos WHERE 1=1\"
它可以顺利通过此行,尽管这会在以后需要读取其他未检索到的数据时引起问题。不过,我认为很有趣的是,该错误似乎来自SQL,而不是来自OpenRecordset函数。
没有找到相关结果
已邀请:
2 个回复
蹦吃舷弦
断跑胺弄萎