DLookup返回" 0"而不是正确的价值

时间:2016-02-04 12:02:53

标签: vba ms-access access-vba

我有一个包含以下代码行的表单的代码块:

Private Sub Variedade_AfterUpdate()
Dim SPval As Single
Variety = Variedade.Value
SPval = DLookup("[SpSix]", "tblSP", "[NumRecipe] = '" & Variety & "'")
ValSP6Table = SPval
End Sub
  • tblSP - >带有值的表。
  • SpSix - >字段我想从tblSP。
  • NumRecipe - >与Variety相比较的领域。

设置为在更新"后在字段Variedade"上运行,从下拉列表中获取值为" 1481B"和" 6265C"。 ValSP6Table是表单中另一个应该自动获取值的字段。

当我运行它时,字段ValSP6Table获取值0而不是列表中的一个值,并且下拉列表没有名为" 0"的值。

我从我理解的互联网摘录中制作了这个小代码块。我尝试了其他格式化方法,但我总是遇到语法错误。

4 个答案:

答案 0 :(得分:0)

你没有调暗Variety(也不是ValSP6Table):

    apply plugin: 'com.android.application'


android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.abc.bcd"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:appcompat-v7:23.0.1'
}

答案 1 :(得分:0)

您的控件Variedade是否链接到表单中的表字段?

放一个

debug.print Variety

在Dlookup声明之前

看看如果在即时窗口中打印出来(在代码编辑器中按Ctrl-G进行查看)。

答案 2 :(得分:0)

ValSP6Table是否可能是Byte,Integer或Long类型?所有调试输出都显示0.xxx小数值,如果转换(转换)为整数类型,则为0。

答案 3 :(得分:-1)

我设法在你的帮助下解决了我自己的问题。我的ValueSP6Table字段不适用于十进制数字,因此我将其全部转换为Integers(例如0,35 - > 35)并将表单的字段格式更改为此="0," & [ValueSP6Table].[Value]。不是最干净的方式,但它的工作原理。

感谢您的帮助。