设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 读如何在VBA中编写含有变量的SQL语句而不易出错有感

[复制链接]
跳转到指定楼层
1#
发表于 2017-3-11 15:47:32 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 fan0217 于 2017-3-11 15:52 编辑

红尘如烟帖子有感:
http://www.office-cn.net/thread-122658-1-1.html

提供另外一种方法,此方法在论坛以前发表过,老生常谈了。

先在模块中建一个函数,如下:
  1. Public Function ArrayFormat(expression As String, ParamArray formatException()) As String
  2.    Dim strFind As String, strReplace As String, strTemp As String
  3.    Dim i As Integer
  4.    strTemp = expression
  5.    For i = 0 To UBound(formatException)
  6.         strFind = "{" & i & "}": strReplace = formatException(i)
  7.         strTemp = Replace(strTemp, strFind, strReplace)
  8.    Next
  9.    ArrayFormat = strTemp
  10. End Function
复制代码

然后开始编写含有变量的SQL语句:

  1. Sub Test()
  2.     Dim strSQL As String
  3.     strSQL = "INSERT INTO 凭证记录表 (状态,日期,制单人,制单时间,关联单号) VALUE ('{0}', '{1}',#{2}#,'{3}')"
  4.     strSQL = ArrayFormat(strSQL, "未审核", "Nickname", Now(), "No001")
  5.     Debug.Print strSQL
  6. End Sub
复制代码
运行,立即窗体显示:


INSERT INTO 凭证记录表 (状态,日期,制单人,制单时间,关联单号) VALUE ('未审核', 'Nickname',#2017/3/11 15:43:44#,'No001')



这样可很方便的实现SQL拼接字符串的功能。




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2017-3-11 20:50:50 | 显示全部楼层
roych 发表于 2017-3-11 19:07
fans也来助阵了!
赞一个
不过语句应该是VALUES:

我搬的红尘如烟的代码,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 00:36 , Processed in 0.114960 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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