Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba DoCMD.RunSQL(更新表增加值位置)_Vba_Ms Access - Fatal编程技术网

Vba DoCMD.RunSQL(更新表增加值位置)

Vba DoCMD.RunSQL(更新表增加值位置),vba,ms-access,Vba,Ms Access,我希望有人能帮助解决这个问题。 我在Access数据库MdB中使用下面的VBA代码 但是现在我需要知道如何用1,2,3,4,5更新列Pos, 现在,列Pos zero的默认值为 示例结果: 我现在使用当前脚本,但我不知道如何为每条记录添加+1值 Public Sub DoSQL() Dim SQL As String ' Here i want + 1 for the pos in every next record.... SQL = "UP

我希望有人能帮助解决这个问题。 我在Access数据库MdB中使用下面的VBA代码

但是现在我需要知道如何用1,2,3,4,5更新列Pos, 现在,列Pos zero的默认值为

示例结果:

我现在使用当前脚本,但我不知道如何为每条记录添加+1值

Public Sub DoSQL()
 
    Dim SQL As String
    
    ' Here i want + 1 for the pos in every next record....

    SQL = "UPDATE TABLE SET Pos = 1 WHERE Box = 'UPDATE'"
    
    DoCmd.RunSQL SQL
     
End Sub
尝试以下表达式:

SQL = "UPDATE TABLE SET Pos = Pos + 1 WHERE Box = 'UPDATE'"
如果所有Pos均为零,请尝试以下操作:

SQL = "UPDATE TABLE SET Pos = Id WHERE Box = 'UPDATE'"

如果Id不是顺序的,您可以使用此处描述的方法之一:。

谢谢您的反馈。当我使用“Pos+1”时,所有选择记录(更新)得到值1。但我需要每个记录的每个Pos增加1 2 3 4。有办法解决这个问题吗?谢谢,所以Pos仅为零。尝试一些替代方案-请看扩展答案。哦,对不起;我没有id号为的列(类型错误)。。我只有Pos列和box列。Pos=Id不适用于我,因为我没有Id列。然后简单的方法是将字段
Id
添加为自动编号字段,然后运行更新查询。或者,如果您不删除记录,请将
Id
重命名为
Pos
。感谢您的反馈;但我无法使用“自动编号”字段,因为我选择了带有“where Box”列的记录。唯一的选项是所选的记录id。是否有方法将记录id用作pos的值?当我运行UPDATESQL语句时,我有记录1 t/m4。