Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access Access中的VBA脚本不工作_Ms Access_Vba - Fatal编程技术网

Ms access Access中的VBA脚本不工作

Ms access Access中的VBA脚本不工作,ms-access,vba,Ms Access,Vba,我有一个简单的MS Access数据库(2010版),只有4个字段: 数据库名称:Test test1=文本 测试2=是/否(勾选框) test3=文本 test4=文本 然后,我创建了一个名为Form_Test的公式,并为勾选框指定了代码: Option Compare Database Option Explicit Private Declare Function apiGetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByV

我有一个简单的MS Access数据库(2010版),只有4个字段:

数据库名称:Test

test1=文本

测试2=是/否(勾选框)

test3=文本

test4=文本

然后,我创建了一个名为Form_Test的公式,并为勾选框指定了代码:

Option Compare Database

Option Explicit

Private Declare Function apiGetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long


Function BenutzerName() As String

Dim lngLen As Long
Dim lngX As Long
Dim strBenutzerName As String

    strBenutzerName = String$(254, 0)
    lngLen = 255
    lngX = apiGetUserName(strBenutzerName, lngLen)
    If lngX <> 0 Then
        BenutzerName = Left$(strBenutzerName, lngLen)
    Else
        BenutzerName = ""
    End If

End Function



Private Sub test2_Click()
If test2.Value = True Then
    test3 = BenutzerName()
Else
    test3 = ""

End If
End Sub
选项比较数据库
选项显式
私有声明函数apiGetUserName库“advapi32.dll”_
别名“GetUserNameA”(ByVal lpBuffer作为字符串_
(尽可能长)尽可能长
函数BenutzerName()作为字符串
幽幽幽幽
变暗lngX为长
作为字符串的暗淡strBenutzerName
strBenutzerName=String$(254,0)
lngLen=255
lngX=apiGetUserName(strBenutzerName,lngLen)
如果lngX为0,则
BenutzerName=左$(strBenutzerName,lngLen)
其他的
BenutzerName=“”
如果结束
端函数
专用子测试2_单击()
如果test2.Value=True,则
test3=BenutzerName()
其他的
test3=“”
如果结束
端接头

我想在用户单击任何行中的勾选框后,使用此代码将用户名添加到字段test3。但是,脚本不起作用,我不明白为什么。有人能帮忙吗?

确保您的代码在正确的位置

在表单的设计模式中

右键单击复选框
并选择
属性
->
事件选项卡
->
单击
->
代码生成器
将打开代码编辑器

这就是您的on代码必须驻留的地方

编辑:


此外,要在代码中设置断点(F9)以查看代码是否被触发,该链接还包含有关调试的信息。

尝试在代码中设置断点,并查看错误发生在代码的哪一行。这可能有助于找出问题的原因。当你说“不起作用”时,也无助于其他人解决你的问题,除非错误显而易见。它没有做什么?如果您的问题是“我没有看到任何事情发生”,请从行
上的断点开始,如果test2.Value=True,则
以确保您的单击事件正在触发。然后检查test2.value的值,以验证它是否符合预期。