Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 Microsoft Access 2007,宏问题,带有电话号码的表格和数据库_Ms Access - Fatal编程技术网

Ms access Microsoft Access 2007,宏问题,带有电话号码的表格和数据库

Ms access Microsoft Access 2007,宏问题,带有电话号码的表格和数据库,ms-access,Ms Access,我正在尝试编写一个小表单,它接受一些用户输入,并根据一些逻辑显示两种可能的其他表单之一。如果我使用简单的、未格式化的数据,一切都正常,但是如果有问题的数据有电话号码的输入掩码,我就会遇到问题。想必这里有一个技巧可以忽略格式化字符或类似的字符 实际逻辑在特定表中查找其值与输入数据匹配的记录。类似这样的简化示例: 一种与任何特定表都不关联的表单,包含一个称为FormFieldY的数据输入字段和一个按钮,其onClick调用宏,宏的条件是在表中查找匹配的数据 DCount("*","Tabl

我正在尝试编写一个小表单,它接受一些用户输入,并根据一些逻辑显示两种可能的其他表单之一。如果我使用简单的、未格式化的数据,一切都正常,但是如果有问题的数据有电话号码的输入掩码,我就会遇到问题。想必这里有一个技巧可以忽略格式化字符或类似的字符

实际逻辑在特定表中查找其值与输入数据匹配的记录。类似这样的简化示例:

一种与任何特定表都不关联的表单,包含一个称为FormFieldY的数据输入字段和一个按钮,其onClick调用宏,宏的条件是在表中查找匹配的数据

     DCount("*","TableX","[MyColumn] = [FormFieldY] " ) > 0
现在,如果表中的MyColumn有简单的文本或数字值,这就可以了。但是,如果我将电话号码输入掩码应用于该列,则永远不会得到匹配项。我曾尝试将输入掩码应用于我的表单字段,或者在表单字段中输入完全格式化的数字

    (1234) 56789012
两者都不匹配。但是如果我改为破解宏并输入一个合适的硬编码格式化值

         DCount("*","TableX","[MyColumn] = '(1234) 56789012'" ) > 0

它很好用。

我想你可能有两个问题。首先,当用户键入电话号码时,format属性显示括号,但这些括号不包括在FormFieldY的值中,它们仅显示

通过将此代码分配给其更新后事件,可以验证FormFieldY的值:

Private Sub FormFieldY_AfterUpdate()
    MsgBox Me.FormFieldY 
End Sub
如果您希望将括号存储为FormFieldY值的一部分,那么使用输入掩码而不是格式可能会让您获得更多乐趣。在Access 2003中,我将其用作文本框控件的输入掩码:

!\(999") "000\-0000;0;_
但是使用输入掩码向导可能是最简单的方法,单击控件属性页上输入掩码行右侧的带3个点的按钮。在第一个向导页面上选择电话号码。在询问如何存储数据的向导页面上,选择带有掩码单选按钮中的符号的

来自djna的评论:这就是解决方案,下面的表达式更改似乎不需要

另一个问题是您的DCount表达式:

DCount("*","TableX","[MyColumn] = [FormFieldY] " ) > 0
我认为您应该使用FormFieldY的值,而不是控件的名称。这可能不清楚,所以我的意思是:

DCount("*","TableX","[MyColumn] = '" & Me.FormFieldY & "'" ) > 0

谢谢,我会试试你的面膜建议。我对答案的值部分持怀疑态度,因为当我引用数据库中的纯文本列时,代码运行良好,但我还是要尝试一下。