Access交流中心

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

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

沈军  发表于: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 却无法通过,是怎么回事呢?

 

Top
曹光耀 发表于:2009-05-26 12:06:03

按下面的修改,试试看.

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



沈军 发表于:2009-05-26 12:41:58

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

 

    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

 



豆豆 发表于:2009-05-26 15:02:50

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

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

 

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

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



豆豆 发表于:2009-05-26 15:08:29

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

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



沈军 发表于:2009-05-26 21:03:14

chaojianan您好!

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

 

感谢!



樟树 发表于:2009-05-26 21:09:07

改成这样试试看

    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



豆豆 发表于:2009-05-27 11:35:44

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

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

这个测试了下,可以。

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

 



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