设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 关于SQL语句里引用变量的问题 [已解决,谢谢]

[复制链接]
跳转到指定楼层
1#
发表于 2009-1-7 14:48:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位查看附件:

想在"标签"表里用代码实现输入"序号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 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-1-7 14:54:57 | 只看该作者
如果是数值
strSQL = "UPDATE TABLE SET [序号2] = j WHERE [序号] = " & i
如果是文本
strSQL = "UPDATE TABLE SET [序号2] = j WHERE [序号] = '" & i & "'"
3#
 楼主| 发表于 2009-1-7 14:59:29 | 只看该作者
我来试试.先谢了.
4#
 楼主| 发表于 2009-1-7 15:08:38 | 只看该作者

回复 2# 的帖子

好像还是不行哦.代码停在了"CurrentDb.Execute strSQL' 上面. 提示UPDATE语法错误.能否帮我检查一下? 先谢过了...
5#
发表于 2009-1-7 15:32:08 | 只看该作者
把代码改成这样试试
strSQL = "UPDATE [TABLE] SET [序号2] =" & j & " WHERE [序号] = " & i
6#
发表于 2009-1-7 16:47:21 | 只看该作者
一个查询:“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

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



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

谢谢各位帮助.
附件是改好的.[:50]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
 楼主| 发表于 2009-1-7 17:31:30 | 只看该作者
[: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教程都是比较理论,所以好难理解的.

这里高手如云. 什么时候等我也成大虾...呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-22 22:12 , Processed in 0.102550 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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