Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请问vba引用sql查询是哪里错了?

欧阳空竹  发表于:2015-11-23 17:22:24  
复制

请问老师,下述sql到底错在哪了?是定义的变量格式不对?请指教。。

-------------------------------------------------------------------------------------------------------------------------------

    Dim strhtmc1 As String

    Dim strhtmc2 As String
    Dim strhtmc3 As String
    Dim strhtmc4 As String

    htmc1 = " SELECT tblkh.khjc FROM tblkh WHERE (((tblkh.khID)= "me.htdx")); "
    htmc2 = " SELECT tblxm.xmjc FROM tblxm WHERE (((tblkh.khID)= "me.xmID")); "

    htmc3 = " SELECT tblyt.ytmc FROM tblyt WHERE (((tblyt.ytmc)= "me.ytID")); "

   htmc4 = " SELECT tblyw.ywnr FROM tblyw WHERE (((tblyt.ytmc)= "me.ytID")); "

   htmc= htmc1 & htmc2 & htmc3 &  htmc4

-------------------------------------------------------------------------------------------------------------------------------

 

Top
cspa 发表于:2015-11-23 18:56:46

如果要引用控件变量应这样写:

    htmc1 = " SELECT tblkh.khjc FROM tblkh WHERE (((tblkh.khID)= '" & me.htdx & "')); "      '当me.htdx为字符型变量时

    htmc1 = " SELECT tblkh.khjc FROM tblkh WHERE (((tblkh.khID)= #" & me.htdx & "#)); "      '当me.htdx为日期型变量时

    htmc1 = " SELECT tblkh.khjc FROM tblkh WHERE (((tblkh.khID)= " & me.htdx & ")); "      '当me.htdx为数字型变量时

 htmc= htmc1 & htmc2 & htmc3 &  htmc4 这样将4个SQL语句合在一起是不行的。



欧阳空竹 发表于:2015-11-23 22:49:43

cspa老师,非常感谢您的回复,按您提点的我已经修改,但您说的最后一点,我改成下面红色字体的样子,本以为可实现要求,但现实是残酷的

   '-----------------------------下述定义变量----------------------------------

    Dim strhtmc1 As String
          Dim strhtmc2 As String
          Dim strhtmc3 As String
          Dim strhtmc4 As String

    Dim strhtmc0 As String

   ‘-----------------------------上述定义变量-----------------------------------
    strhtmc1 = " SELECT tbl客户.客户简称 FROM tbl客户 WHERE (((tbl客户.客户ID)='" & Me.合同对象 & "')); "
    strhtmc2 = " SELECT tbl项目.项目简称 FROM tbl项目 WHERE (((tbl项目.项目ID)='" & Me.项目ID & "')); "
    strhtmc3 = " SELECT tbl业态.业态名称 FROM tbl业态 WHERE (((tbl业态.业态ID)='" & Me.业态ID & "')); "
    strhtmc4 = " SELECT tbl业务.业务内容 FROM tbl业务 WHERE (((tbl业务.业务ID)='" & Me.业务ID & "')); "
    
    strhtmc0 = strhtmc1 & strhtmc2 & strhtmc3 & strhtmc4

 me.合同名称 = strhtmc0

这段代码想要实现的是:四个组合框字段的值【Me.合同对象、Me.项目ID、Me.业态ID、Me.业务ID,(这些字段是各相关表的编号)】,上述蓝色代是根据各自的编号,通过查询取相应的字段值合同对象项目简称、业态名称 业务内容(定义的变量strhtmc1、strhtmc2strhtmc3strhtmc4),把这些变量连起来形成【合同管理表】另一个字段的值(me.合同名称)。

例:

合同编号(已实现)

字段名称:合同对象 项目ID 业态ID  业务ID   编号

合同编号:   KH01 - XM22 - YT03 - YW04 - 0001   


合同名例:(未实现)

字段名称:合同对象&项目简称&业态名称&业务内容&”合同“

全同名称:大连万达  城市广场  商业项目  工程委托  合同

请问,我该如何修改?



cspa 发表于:2015-11-24 08:30:24

这样不行吗:

Me.合同对象 & " " &  Me.项目ID & " " & Me.业态ID & " " & Me.业务ID



欧阳空竹 发表于:2015-11-24 22:42:54


欧阳空竹 发表于:2015-11-24 22:44:03

http://pan.baidu.com/s/1sjnDwAh  网盘地址,附件超过大小限制了。。



cspa 发表于:2015-11-25 08:52:07

你搞复杂了,是这样吗?把附件内容替换你的同名文件试试(请替换前做好你的文件备份)点击下载此附件

只加个下面的事件即可

Private Sub ywID_AfterUpdate()
Me.htmc = Me.htdx.Column(1) & xmID.Column(1) & Me.ytID.Column(1) & Me.ywID.Column(1)

End Sub






欧阳空竹 发表于:2015-11-25 15:01:39
一个Column(1)就解决了我一堆问题。。cspa 老师,你太棒了。给您12个赞


总记录:7篇  页次:1/1 9 1 :