ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助大神:关于sql的参数传递问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-15 15:12 | 显示全部楼层 |阅读模式
在使用SQL查询时,出现了参数传递问题,代码如下:

    'sqlFd1 = "select * from 入库明细表 where (产品编码 = '" & Replace(TextProIDFd, "'", "''") & "')"
    'sqlFd2 = "select * from (" & sqlFd1 & ") where (入库登记编码 = '" & Replace(TextRgNoFd, "'", "''") & "')"
      Set rsFd = con.Execute(sqlFd2)
其他过程没问题,但总是报错,“至少缺少一个参数”。
请大神指导
      

TA的精华主题

TA的得分主题

发表于 2023-5-15 15:17 | 显示全部楼层
检查一下字段名称是否有敏感字符,用[]框起来。

TA的精华主题

TA的得分主题

发表于 2023-5-15 15:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这样看则两句话没啥问题,
但因为有些变量无法看出来是什么。
建议你调试,sqlFd2输出到立即窗口,复制该语句到sql运行检查。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-15 15:27 | 显示全部楼层
我看了一下,好像没有,这里时全部的代码
Private Sub CommandButton4_Click()

Dim sqlFd1 As String
Dim sqlFd2 As String
Dim rsFd As New ADODB.Recordset
Dim i As Integer
    sqlFd1 = "select * from 入库明细表 where (产品编码 = '" & Replace(TextProIDFd, "'", "''") & "')"
    sqlFd2 = "select * from (" & sqlFd1 & ") where (入库登记编码 = '" & Replace(TextRgNoFd, "'", "''") & "')"
      Set rsFd = con.Execute(sqlFd2)   
   Sheet3.Activate
   Sheet3.Cells.Clear
   For i = 0 To rsFd.Fields.Count - 1
       If rsFd.BOF And rsFd.EOF Then
            MsgBox "没有找到相关记录"
            Else
            Sheet3.Cells(1, i + 1) = rsFd.Fields(i).Name
        End If
            Next   
            Sheet3.Range("A2").CopyFromRecordset rsFd
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-15 15:35 | 显示全部楼层
本帖最后由 viclice 于 2023-5-15 15:45 编辑

很奇怪,当我把第二句SQL代码中的where语句删除后又没有问题,但这不是我想要的,用where ……and ……也不行,还是报错

TA的精华主题

TA的得分主题

发表于 2023-5-15 15:50 | 显示全部楼层
本帖最后由 盼盼198310 于 2023-5-15 15:51 编辑
viclice 发表于 2023-5-15 15:35
很奇怪,当我把第二句SQL代码中的where语句删除后又没有问题,但这不是我想要的,用where ……and ……也不 ...

那就检查一下看看where后面的字段名称有没有问题,还有就是看看数据类型是不是相符,看到你的字段名称中有编码,很大概率是数字与文本的原因

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-15 15:55 | 显示全部楼层
我的access中入库登记编码确实是一串数字,但我的设置是文本格式,在SQL语句中也是使用的文本格式啊,这里会有什么坑呢?还请指导

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-15 15:57 | 显示全部楼层
确实,但我在数据库中的设置是文本格式,这里也用的是文本格式啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-15 16:17 | 显示全部楼层
确实是数字和文本的问题,我改成查询零一字段(纯文字的)就没有问题,但一定要查询编码应该怎么处理呢

TA的精华主题

TA的得分主题

发表于 2023-5-15 16:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
viclice 发表于 2023-5-15 16:17
确实是数字和文本的问题,我改成查询零一字段(纯文字的)就没有问题,但一定要查询编码应该怎么处理呢

查询前先转换成统一格式了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 09:00 , Processed in 0.043621 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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