ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3410|回复: 2

请问word中sql语句中的条件能否用变量来表达

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-5-15 01:51 | 显示全部楼层 |阅读模式

现在要取mdb中一个表里id字段为一定数值的记录,而这个id的值也就是我们要在select中用where条件表达的值,她的值我在另一张表中通过查询得出.但是现在我用如下语句提取数据出错了.

myid = RST.Fields("建议书制作时间")

strSQL2 = "SELECT * FROM temp1 where id=myid'"

RST2.Open strSQL2, CNN2, adOpenKeyset, adLockOptimistic, adCmdText 做到这里提示有变量没有赋值.这个时候把where的id变成一个常量就没问题.引用变量就出问题了.

请问该如何引用变量啊

TA的精华主题

TA的得分主题

发表于 2005-5-15 06:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

请参(此处亦针对文本转化为表格进行处理)

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-5-15 6:05:03 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Sub ExampleFour() Dim CNN As New ADODB.Connection, i As Integer Dim RST1 As New ADODB.Recordset, RST2 As New ADODB.Recordset Dim Stpath As String, strSQL1 As String, strSQL2 As String Dim MyString As String, MyBag As Long, Row1String As String ' On Error Resume Next Stpath = "C:\WINNT\system32\ias\ias.mdb" '数据库路径 '打开指定数据库 CNN.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & Stpath '定义一个在表Objects中条件为Identity=13的Parent的值 strSQL1 = "SELECT Parent FROM Objects WHERE Identity=13" '读取数据库 RST1.Open strSQL1, CNN, adOpenKeyset, adLockOptimistic, adCmdText With RST1 Do While Not .EOF '取得该值并赋于另一个新的查询中 MyBag = .Fields("Parent").Value '定义一个在表Properties中条件为Bag=上一查询中的值的所有数据 strSQL2 = "SELECT * FROM Properties WHERE Bag=" & MyBag RST2.Open strSQL2, CNN, adOpenKeyset, adLockOptimistic, adCmdText With RST2 '注意,示列中的表的第一列为BAG,因已参与查询,注意I的循环次数 For i = 1 To .Fields.Count - 1 Row1String = Row1String & .Fields(i).Name & "?" Next '加上首列字段名,并去除原有的最后一个"?"再加一个段落标记 Row1String = "Bag?" & Mid(Row1String, 1, Len(Row1String) - 1) & Chr(13) Do While Not .EOF '将该数据累加 MyString = MyString & .Fields("Bag") & "?" & .Fields("Name") & "?" & .Fields("Type") & "?" & .Fields("StrVal") & Chr(13) .MoveNext Loop End With .MoveNext '向下移动记录指针 Loop RST2.Close .Close '关闭数据表 End With Set RST1 = Nothing '释放对象 Set RST2 = Nothing '释放对象 Set CNN = Nothing '释放对象 '将"表格"首行合并到字符串中 MyString = Row1String & MyString '插入字符串 Selection.InsertAfter MyString '以?号为分隔符将文本转换为表格 Selection.ConvertToTable Separator:="?" End Sub '----------------------

[此贴子已经被作者于2005-5-15 6:06:21编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-5-20 01:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

对于我在一楼提出的问题.现在已经解决,需要在变量前后加&.这样才能正常引用变量.在sql中条件表达式是不能直接用变量的.

看起来很简单确困扰了我很久.大家看了今后遇到就好办多了

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-14 14:54 , Processed in 0.038106 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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