Access交流中心

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

回复 加入收藏帖  复制
我要提问 帖子上移

DLOOKUP及相关函数采用字段名称问题

沈军 等级: 版主★★★★★ 积分:354 金币:960 来自:东莞Access交流中心 发表于:2009-05-26 11:38:39   已结帖
楼主

老师们你们好!

学生遇到一个难以解决的问题,就是如何在DLOOKUP等相关函数中无法通过VBA方法自定字段名称,希望大家给予帮助。

 

感谢啦!

 

如:

DLookup("字段名", "表1", "条件字段名")

现在我希望通过VBA设置变量的方法自定义 字段名 名称,试过多次都无法顺利通过测试,真是苦脑啊。

代码如下:

    Dim i As Integer
    Dim Nr As String
    For Each ctl In Me.Controls
        For i = 1 To 6
        Nr = DLookup("内容" & i, "表1", "序号=" & i)
        If ctl.Name = "text" & i Then ctl = Nr
        Next
    Next

后面的条件字段 "序号=" & i 可以通过,但前面的字段名称 "内容" & i 却无法通过,是怎么回事呢?

 

access培训  诚聘access开发人员

    沈军
      获得社区协助:请教问题(即发帖)3篇,其中获得解决的2篇;
      协助社区成员:协助他人(即回帖)269篇,其中被设为【最佳答案】的71篇;
      协助我们社区:发布技术文章24篇,邀请了2名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top

扫描下方工作人员的微信二维码加微信,邀您加入Access课堂微信群,进入一个技术交际圈:

网站工作人员微信

曹光耀 等级:一星会员 积分:226 金币:760 来自:广州Access交流中心 发表于2009/5/26 12:06:03 
1楼 得分: 0

按下面的修改,试试看.

Nr = DLookup("内容='"内容 & i & "'", "表1", "序号=" & i)



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    曹光耀
      获得社区协助:请教问题(即发帖)3篇,其中获得解决的1篇;
      协助社区成员:协助他人(即回帖)314篇,其中被设为【最佳答案】的87篇;
      协助我们社区:发布技术文章19篇,邀请了4名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
沈军 等级:版主★★★★★ 积分:354 金币:960 来自:东莞Access交流中心 发表于2009/5/26 12:41:58 
2楼 得分: 0

请帮助把下列代码变简单点,谢谢!

 

    Select Case Me.pCsj
    Case 1
        If Not IsNull(DLookup("车辆牌号1", "车辆派遣", "位置=1")) Then
            Me.车牌 = DLookup("车辆牌号1", "车辆派遣", "位置=1")
        End If
    Case 2
        If Not IsNull(DLookup("车辆牌号2", "车辆派遣", "位置=1")) Then
            Me.车牌 = DLookup("车辆牌号2", "车辆派遣", "位置=1")
        End If
    Case 3
        If Not IsNull(DLookup("车辆牌号3", "车辆派遣", "位置=1")) Then
            Me.车牌 = DLookup("车辆牌号3", "车辆派遣", "位置=1")
        End If
    Case 4
        If Not IsNull(DLookup("车辆牌号4", "车辆派遣", "位置=1")) Then
            Me.车牌 = DLookup("车辆牌号4", "车辆派遣", "位置=1")
        End If
    Case Else
        Me.车牌 = Null
    End Select
   
    If Not IsNull(Me.车牌) Then
    Me.显示车牌.Caption = DLookup("车辆牌号", "车辆资料", "车辆ID=FORMS!车辆动态!车牌")
    Else
    Me.显示车牌.Caption = ""
    End If

 



    沈军
      获得社区协助:请教问题(即发帖)3篇,其中获得解决的2篇;
      协助社区成员:协助他人(即回帖)269篇,其中被设为【最佳答案】的71篇;
      协助我们社区:发布技术文章24篇,邀请了2名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
豆豆 等级:普通会员 积分:504 金币:0 来自:东莞Access交流中心 发表于2009/5/26 15:02:50 
3楼 得分: 0

表1中如果只用[品名]字段用

Nr = DLookup("品名", "表1", "序号=" & i)

 

表1中如果有[品名1],[品名2],[品名3],。。[品名6]这样的字段用

Nr = DLookup("品名" & i, "表1", "序号=" & i)



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    豆豆
      获得社区协助:请教问题(即发帖)3篇,其中获得解决的1篇;
      协助社区成员:协助他人(即回帖)604篇,其中被设为【最佳答案】的231篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
豆豆 等级:普通会员 积分:504 金币:0 来自:东莞Access交流中心 发表于2009/5/26 15:08:29 
4楼 得分: 0

Case 1
        If Not IsNull(DLookup("车辆牌号1", "车辆派遣", "位置=1")) Then
            Me.车牌 = DLookup("车辆牌号1", "车辆派遣", "位置=1")
        End If
改为

Case 1
     Me.车牌 = nz(DLookup("车辆牌号1", "车辆派遣", "位置=1"))
其他相同



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    豆豆
      获得社区协助:请教问题(即发帖)3篇,其中获得解决的1篇;
      协助社区成员:协助他人(即回帖)604篇,其中被设为【最佳答案】的231篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
沈军 等级:版主★★★★★ 积分:354 金币:960 来自:东莞Access交流中心 发表于2009/5/26 21:03:14 
5楼 得分: 0

chaojianan您好!

关于 Nr = DLookup("品名" & i, "表1", "序号=" & i) 我在VBA使用当中无法使用,是因为 "品名" & i 无法接受,我已经试过好多次了,是不是这函数中无法重新定义字段名称呢?

 

感谢!



    沈军
      获得社区协助:请教问题(即发帖)3篇,其中获得解决的2篇;
      协助社区成员:协助他人(即回帖)269篇,其中被设为【最佳答案】的71篇;
      协助我们社区:发布技术文章24篇,邀请了2名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
樟树 等级:一星会员 积分:114 金币:480 来自:杭州Access交流中心 发表于2009/5/26 21:09:07 
6楼 得分: 0

改成这样试试看

    Dim i As Integer
    Dim Nr As String

    Dim FieldName as String
    For Each ctl In Me.Controls
        For i = 1 To 6

            FieldName="内容" & i
            Nr = DLookup(FieldName, "表1", "序号=" & i)
            If ctl.Name = "text" & i Then ctl = Nr
        Next
    Next



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    樟树
      获得社区协助:请教问题(即发帖)10篇,其中获得解决的10篇;
      协助社区成员:协助他人(即回帖)146篇,其中被设为【最佳答案】的37篇;
      协助我们社区:发布技术文章12篇,邀请了3名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
豆豆 等级:普通会员 积分:504 金币:0 来自:东莞Access交流中心 发表于2009/5/27 11:35:44 最佳答案
7楼 得分: 2

表1中如果有[品名1],[品名2],[品名3],。。[品名6]这样的字段用

Nr = DLookup("品名" & i, "表1", "序号=" & i)

这个测试了下,可以。

请传你的附件看看为何不行。

 



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    豆豆
      获得社区协助:请教问题(即发帖)3篇,其中获得解决的1篇;
      协助社区成员:协助他人(即回帖)604篇,其中被设为【最佳答案】的231篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
总记录:7篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。