【发布时间】:2018-02-16 03:30:51
【问题描述】:
我有这两张表是 MS Access :
lkpSchemaPIT:
| UID | lkpSchemaTitleEng |
|-----|--------------------------|
|--1--|---------Title1-----------|
|--2--|---------Title2-----------|
...
lkpSchemaPITChronology :
| ID | UID | PUID | Sort | Level | DateStart | DateEnd |
|----|-----|------|------|-------|-----------|---------|
|--0-|--1--|--0---|---5--|--2----|---Now()---|--NULL---|
...
第一个表只包含节点,我将在访问树视图中放入这些节点。我使用第二个表来构建树,但也跟踪节点多年来可能拥有的所有父节点。可以看到两个表中的UID是一样的,但是它们之间没有关系,我在建树的时候,使用了一个带有join的查询。
我的问题是:当我想在 lkpSchemaPIT 表中添加一个新节点时,我还需要能够添加它的“treeview”信息(父级、排序、级别等)。
到目前为止,这是我的代码:
With CurrentDb
.Execute _
"INSERT INTO lkpSchemaPIT " & _
"(lkpSchemaTitleEng) " & _
"VALUES " & _
"('" & Title & "')"
.Execute _
"INSERT INTO lkpSchemaPITChronology VALUES (" & .OpenRecordset("SELECT @@IDENTITY").Fields(0) & ", " & [ParentID] & ", " & [NewSort] & ", " & [Level] & ", " & Date & ", null)"
End With
ParentID、NewSort、Level 是在我调用这一切之前已经确定的 3 个变量。 “日期”参数是返回当前日期的 VBA 函数。
我知道第一个 INSERT INTO 正在工作,因为我的表中显示了一个新值。但是第二个 INSERT INTO 不起作用,我得到了错误:
错误 3346 - 查询值和目标字段的数量不同。
有人遇到过这种问题吗?
【问题讨论】:
-
首先指定要在最后一个查询中插入的列。这通常可以解决问题。
-
这改变了我得到的错误:3134 - INSERT INTO 中的语法错误。
-
当它被填写并导致错误时,你能 debug.print 那个字符串吗?
-
这就是我得到的:INSERT INTO lkpSchemaPITChronology (UID, PUID, Sort, Level, DateStart)VALUES (104, 19, 5, 2, 2018-02-15)
-
是的,我看到了,改了,但没有任何变化。