Office中国论坛/Access中国论坛

标题: 关于SQL语句里引用变量的问题 [已解决,谢谢] [打印本页]

作者: lsxhoho    时间: 2009-1-7 14:48
标题: 关于SQL语句里引用变量的问题 [已解决,谢谢]
各位查看附件:

想在"标签"表里用代码实现输入"序号2"的数据生成.

序号1  序号2

1            100
2             99      
...
100         1
其中序号1已经有数据.

我想通过循环进行"序号2"的录入.用SQL 的UPDATE语句.
如下:
Option Compare Database
Option Explicit
Private Sub action_Click()
    Dim strSQL As String
    Dim i As Integer
    Dim j As Integer
   
        j = 100
        For i = 1 To 100
         
            strSQL = "UPDATE TABLE SET [序号2] = j WHERE [序号] = i "
            
            CurrentDb.Execute strSQL
        
            i = i + 1
            j = j - 1
                           
        Next
        
End Sub
问题是, 语句中对i 和j的引用不对. 请各位老大指导. 主要关心如何引用i,j等 变量的引用.另外,这个循环是不是正确?

本人菜鸟. SQL语句中对数据的引用好像很烦索. 一般的例子也没有对代代码内定义的变量进行SQL运算的.


谢谢

[ 本帖最后由 lsxhoho 于 2009-1-7 17:24 编辑 ]
作者: Grant    时间: 2009-1-7 14:54
如果是数值
strSQL = "UPDATE TABLE SET [序号2] = j WHERE [序号] = " & i
如果是文本
strSQL = "UPDATE TABLE SET [序号2] = j WHERE [序号] = '" & i & "'"
作者: lsxhoho    时间: 2009-1-7 14:59
我来试试.先谢了.
作者: lsxhoho    时间: 2009-1-7 15:08
标题: 回复 2# 的帖子
好像还是不行哦.代码停在了"CurrentDb.Execute strSQL' 上面. 提示UPDATE语法错误.能否帮我检查一下? 先谢过了...
作者: WDLRCZT    时间: 2009-1-7 15:32
把代码改成这样试试
strSQL = "UPDATE [TABLE] SET [序号2] =" & j & " WHERE [序号] = " & i
作者: liwen    时间: 2009-1-7 16:47
一个查询:“UPDATE [TABLE] SET [TABLE].序号2 = 101-[序号]”实现下面的代码
Private Sub action_Click()
    Dim strSQL As String
    Dim i As Integer
    Dim j As Integer
          j = 100
        For i = 1 To 100
            strSQL = "UPDATE [TABLE] SET [序号2] = " & j & " WHERE [序号] = " & i & ""
            CurrentDb.Execute strSQL
            j = j - 1
        Next
End Sub

不过我感觉楼主并不是想要这样的结果。
作者: lsxhoho    时间: 2009-1-7 17:23
原帖由 WDLRCZT 于 2009-1-7 15:32 发表
把代码改成这样试试
strSQL = "UPDATE  SET [序号2] =" & j & " WHERE [序号] = " & i



谢谢.成功了.
不过代码里的
i=i+1
要去掉.否则的话他会隔行填充. 可能是这样:
i=i+1将i增加1后,到了NEXT语句又会对i进行增加.

谢谢各位帮助.
附件是改好的.[:50]
作者: lsxhoho    时间: 2009-1-7 17:31
[:50]
原帖由 liwen 于 2009-1-7 16:47 发表
一个查询:“UPDATE  SET .序号2 = 101-[序号]”实现下面的代码
Private Sub action_Click()
    Dim strSQL As String
    Dim i As Integer
    Dim j As Integer
          j = 100
        For i = 1 To 1 ...


谢谢.因为使用SQL语句时引用窗体内的数据,或是代码内的变量时格式很难懂.所以来问这个问题. 而坛子里的SQL教程都是比较理论,所以好难理解的.

这里高手如云. 什么时候等我也成大虾...呵呵




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3