ms-access 本地化和默认布尔值

2024-02-19

我们的访问客户端即时生成 SQL 插入、更新和删除指令,并在 MS-SQL Server 上发送。大多数用户拥有 Access 2007 的运行时版本,少数用户使用完整的 MS-Access 版本(2003 或 2007)。今天早上,我们国外的一位新用户使用 Access 2003 的法语/完整版本,无法更新包含以下内容的数据:布尔字段。

在法语版 Access 中,这些字段似乎填充了“Vrai/Faux”而不是“True/False”值。通过安装2007 access运行时解决了该问题。

但我想找到一个永久的解决方案,我可以从某个地方读取正在使用的 Access 的本地化版本,并将本地化的 True/False 值“翻译”为标准 True/False。我已经检查了计算机的区域设置但没有成功,所以它在其他地方。任何想法?

编辑:按照 JohnFX 的提议,可以使用这个简单的函数有效地将本地 True/False 转换为通用 True/False:

Function xBoolean(xLocalBooleanValue) as Boolean
if cint(xLocalBooleanValue) = -1 Then
    xBoolean = True
endif
if cint(xLocalBooleanValue) = 0 Then
    xBoolean = False
endif
end function

编辑:根据@David 的评论,我更改了最喜欢的解决方案。他的提议比我的聪明。

编辑:我通过读取记录集中字段的值来获取 Vrai/Faux 值:

? debug.print screen.activeForm.recordset.fields(myBooleanField).value 
Vrai

在所有情况下,无论本地化或数据库格式如何,True 都不是 FALSE 或 NOT 0。

因此,如果您将 True 的所有测试替换为 NOT 0,将 False 的所有测试替换为 =0,那么您就避免了 Access 关键字的本地化问题(令我惊讶的是,VBA 以及 Jet 和 Access 表达式服务不会但仍然理解 True/False),以及数据库引擎用于存储布尔值的任何约定。

一般来说,您的数据访问层应该为您抽象出来。根据我的经验,ODBC 和 ADO 都会自动执行此操作,因此您可以使用您知道的布尔值,并且它会以透明的方式为您处理。

我仍然对这个问题感到困惑,因为它听起来像是显示/格式问题,但对 True 和 False 使用 NOT 0 和 =0 可以在所有情况下完全避免该问题。

编辑:关于编辑为菲利普问题的功能:

您将函数的参数隐式定义为变体是否有原因?你是这个意思吗?如果传递的是 Null,则第一个 CInt() 会出错,因为 CInt() 不能接受 Null。

另外,还有一个逻辑问题,在 VBA 中,除 0 之外的任何数字都应该返回 True。这也是完全冗余的代码。这更简单,并且在所有情况下都会返回正确的结果:

  Function xBoolean(xLocalBooleanValue As Vriant) as Boolean
    If CInt(xLocalBooleanValue) <> 0 Then
       xBoolean = True
    End If
  End Function

或者,更简洁一点:

  Function xBoolean(xLocalBooleanValue As Variant) as Boolean
    xBoolean = (CInt(xLocalBooleanValue) <> 0)
  End Function

并处理参数中传递的空值:

  Function xBoolean(xLocalBooleanValue As Variant) as Boolean
    xBoolean = (CInt(Nz(xLocalBooleanValue, 0)) <> 0)
  End Function

我不确定这在您当前使用它的上下文中是否必要,但我总是讨厌编写代码,因为我可以想象它会出错的情况 - 即使我知道它在当前上下文中无法中断,你永远不知道它最终会在哪里使用,所以如果你预见到可以处理的情况,你应该处理它。

过早优化?

不——它是在武器上加一个安全锁,以防止其被滥用。

(另一方面,如果需要更多行代码来处理预期的错误,那么函数开始时,我会三思而后行)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ms-access 本地化和默认布尔值 的相关文章

  • 在 msAccess 中更新失败,但在 dgv C# 中更新成功

    这是我的 btnUpdate 代码 以便 msAccess 进行更新 private void btnUpdate Click object sender EventArgs e string CoString Provider Micro
  • 如何以编程方式获取 Android 项目(非设备)中支持的语言列表

    在一些项目中我们可能会出现这种情况 如何以编程方式获取此应用程序 项目支持的语言列表 结果我需要这样的字符串数组 en bg bs da de hr it nl pl pt sk sr tr 当然 我可以通过键入它来对其进行硬编码 但我认为
  • 如何检测 JSF 应用程序中的客户端区域设置?

    我该如何使用ServletRequest getLocale 在 JSF 应用程序中 当Servlet我的代码中不存在并且由 JSF 实现提供 我正在尝试使用ServletContextListener 但是有可能达到ServletRequ
  • 在函数上使用子例程的目的

    我已经使用 Access 一段时间了 尽管我了解 Function 相对于 Sub 的明显好处是它可以返回值 但我不确定为什么我应该使用 Sub 而不是一个函数 毕竟 除非我弄错了 函数可以做所有 Subs 可以做的事情吗 注意 我完全知道
  • WPF XAML 绑定和 CurrentCulture 显示

    当 CurrentCulture 更改时 我发现 XAML 文档出现一些无效行为 当我在窗口中有一些这样的元素时
  • MS-Access 查询中的语法错误(缺少运算符)

    以下查询给了我 missing operator 语法错误 所需的输出是表中数据的组合 dbo tbl 和意见 vw 我用过的所有钥匙都存在 有任何想法吗 SELECT dbo tbl BOD fpartno AS PartNumber d
  • MS Access VBA:通过 Outlook 发送电子邮件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何使用 MS Access VBA 通过帐户发送电子邮件 我知道这个问题很模糊 但是很难在网上找到在某种程度上还没有过时的相关信息 编辑
  • 使用本地化故事板进行即时本地化

    我正在开发一个应用程序 它有一个切换按钮可以在英语和阿拉伯语之间切换 并且应该是动态的 我正在使用该方法https github com maximbilan ios language manager https github com ma
  • 在 xcode 中,有没有办法验证所有 NSLocalizedStrings 的密钥?

    除了运行其中包含 NSLocalizedString 的每个代码路径之外 是否有一种方法可以验证所有 NSLocalizedString 是否都具有实际存在于所有捆绑包的所有 Localized strings 文件中的密钥 例如 一个键中
  • 报告文字颠倒?

    由于特定原因 我需要能够在报告的下半部分颠倒 倒置 显示一些值 这份报告的目的是打印并从中间折叠起来 所以我希望它遵循这种特定的格式 我找不到任何可以轻松做到这一点的东西 我考虑过但不知道如何实施的一些想法 导入 颠倒字体并将控件的字体设置
  • 数据转换器 SSIS 数据流组件中相应列的转换数据类型应该是什么?

    我们的一台服务器上有普通的 Microsoft SQL Server 2008 我们决定在文件系统上创建 DTSX 文件 以便我们可以使用 BIDS 2008 打开 DTSX 文件 一种 SSIS 控制流组件 它从 Microsoft SQ
  • Microsoft Office Url 协议的详细信息?

    Microsoft Office 文档在客户端计算机上注册自定义 url 协议 SharePoint 特别使用此功能 例如 如果我打开一个 Excel 文件 我会看到对此 url 的调用 ms excel ofv u https mycor
  • MS Access 执行 POST Web 请求

    在我的 MS Access 应用程序中 我需要定期向我的网络服务器发送一批信息 我不需要任何花哨的东西 比如 SOAP XML RPC 或任何东西 只需一个简单的 POST 页面请求就足够了 我用谷歌搜索了一下 但找不到任何真正有用的东西
  • MS Access - 粘贴确认事件后

    当用户将记录直接粘贴到数据表子报表中时 是否可以在显示粘贴确认消息后捕获事件 我需要它能够在审计表中创建新记录时进行记录 通过捕获更新前 更新后和插入事件 我可以轻松创建已添加的记录集合 准备将详细信息插入审核日志 但是在所有这些事件触发后
  • 如何使用 SSIS 将多个 Access 数据库导入到 SQL Server

    我有一个文件夹 其中包含 300 多个 Access 数据库 由我无法控制的程序编写 它们都有相同的结构 只是一张表 我正在将数据导入到 SQL Server 2005 中的表中 使用导入向导效果很好 但它一次只能用于一个 Access 数
  • 如何检索 iPhone 的区域设置

    我用谷歌搜索过它 但令我有点惊讶的是我找不到它 我只想访问设备配置的区域设置 我试图找到如何列出所有系统属性 以防我能在那里找到区域设置 但甚至找不到如何做到这一点 我知道 认为 我之前检索过系统属性 但我也记得在谷歌搜索时找到该信息并不容
  • 基本的多对多sql选择查询

    我认为这应该很容易 但它却在逃避我 我的帐户和帐户组之间存在多对多关系 一个帐户可以位于零个或多个组中 因此我使用标准连接表 Accounts ID BankName AcctNumber Balance AccountGroups ID
  • 三星 Galaxy Note II - 逗号作为数字键盘小数分隔符

    我正在尝试使用逗号作为三星 Galaxy Note II 上数字键盘的小数分隔符 我已经在其他设备 Moto X rooted Samsung GS4 上测试了我的应用程序 如果我从设备的系统设置中更改语言 它们的小键盘具有正确的分隔符 三
  • 访问数据库 LIMIT 关键字

    我试图让我的页面列表功能在 ASP 中与 Access 数据库一起工作 但我不知道 Microsoft SQL 中 LIMIT 的替代方案 我已经尝试过 TOP 但这似乎不起作用 这是 MySQL 中使用的语句 SELECT FROM cu
  • 我们可以使用sql列出MS Access数据库中的所有表吗?

    我们可以使用 sql 找到 ms access 中的所有表吗 就像我们在 sql server 中所做的那样 select from sys tables 在sqlite中 SELECT FROM sqlite master where t

随机推荐

  • 如何在Java EE应用程序中接收电子邮件

    显然 通过 JavaMail 从 Java EE 应用程序发送电子邮件并不是那么困难 我感兴趣的是最好的模式receive电子邮件 主要是通知退回 我对基于 IMAP POP3 的方法 轮询收件箱 不感兴趣 我的应用程序应react到入站电
  • AlarmManager 的奇怪行为

    我有 2 个 BroadcastReceiver 和 2 个意图 我想单击一个按钮 5m 后开始广播 1 10m 后开始广播2 发生的情况是它们在我单击后 10m 开始 我的猜测是 意图不是唯一的 但我为每个人设置不同的reqeustCod
  • 如何在视觉代码中使用图像它不起作用?

    Image is not showing in browser using the image tag where am i wrong i want to add image in web and i am unable to do it
  • 服务耗尽 TCP 连接

    我有一个使用 c net 4 0 创建的 Windows 服务 它是一些东西的监视器 它上面有一个计时器 并且有一个计时器每 5 分钟运行一次 所以它有一个定时器控件 并且在定时器中有一个Elapsed事件 private void Tim
  • 使用 nginx 缓存 POST 响应:我应该将 Cache-Control 标头转发到客户端吗?

    我们的系统使用 POST 请求来预加载资产列表 给定相同的资产标识符列表 服务器将使用相同的资产数据列表进行响应 由于标识符列表可能非常长 它实际上是包含 JSON 列表的多部分请求 因此我们使用 POST 而不是 GET 尽管它is幂等的
  • 使用 pygame 通过按键结束循环

    我在 Ubuntu 上使用 PyGame 我想创建一个 while 循环 当用户按下键盘上的任何按钮时结束 这段代码不会离开循环 Eclipse 不会给出任何错误和警告 但永远不会离开循环 怎么了 import time import py
  • 具有不同参数的特征的 new() 方法

    我正在尝试使用具有不同内部参数的各种实现来创建一个特征 pub trait ERP fn new gt Self fn sample self gt f64 pub struct Bernoulli p f64 impl ERP for B
  • 如何编写Activerecord/Arel交集查询

    我在 PSQL 中得到了这个工作 SELECT profiles id FROM profiles INNER JOIN integration profiles ON integration profiles profile id pro
  • sim800 在指挥所数据到服务器

    我对向远程服务器发送数据感到困惑 我能够发送发布请求 但不确定如何添加服务器随后接收的数据 我已经浏览了数据表http www jarzebski pl datasheets SIM900 https 121018 1 00 pdf htt
  • MySQL 中空连接上的 group_concat

    我有以下问题 我有两个表 简化 User Role ID
  • 如何设置底部导航的高度

    所以由support V25 我们有一个名为底部导航的新组件 遵循设计指南 底部导航elevation应该8dp https material io guidelines components bottom navigation html
  • 使用 ymm 寄存器作为“类似内存”的存储位置

    考虑 x86 中的以下循环 on entry rdi has the number of iterations top some magic happens here to calculate a result in rax mov arr
  • 为什么我在 BBEdit 中的搜索导致“堆栈溢出”错误?

    我对 堆栈溢出 错误感到困惑 堆栈空间不足 应用程序错误代码 12246 当我执行 全部替换 时 我进入 BBEdit 搜索 article eprint article book r pmid eprint article book r
  • 限定 BigQuery 标准 SQL 中的等效子句

    BigQuery Standard SQ 中是否有 Teradata 的等效 Qualify 子句 我需要它 因为我们不能在Where Having 子句中使用分析函数 它已经发布了 在撰写本文时是 pre GA 现在是 GA 正如下面 R
  • 如何在将应用程序语言更改为阿拉伯语时显示阿拉伯语键盘?

    我有一个支持阿拉伯语和英语的移动应用程序 因此 为此 我使用两个单独的故事板在更改语言的同时从右向左翻转布局 不确定为阿拉伯语和马拉雅拉姆语使用两个单独的故事板是否是一个好主意 请建议任何其他更好的解决方案 但事实并非如此 我希望向用户展示
  • MYSQL、PHP插入数据库中的多个表

    我正在尝试将信息插入数据库中的多个表中 我已设法使用以下方法使其正常工作 query INSERT INTO users grp email college id tutor year password register date VALU
  • 将数据帧拆分为固定大小的行

    我有一堆长度不同的数据帧 范围从大约到 15 000 至 500 000 对于每个数据帧 我想将它们分成更小的数据帧 每个数据帧有 300 行 我将对其进行进一步处理 我怎样才能做到这一点 This 按行数拆分数据框 https stack
  • 解析和 Facebook SDK“Bolts”框架错误

    我有一个安装了 Parse 和 Facebook 框架的应用程序 Parse 是通过将文件拖动到项目的 Frameworks 文件夹并选择 如果需要则复制 来安装的 而 Facebook SDK 则是通过拖动而不选择复制选项来安装的 两者都
  • C# 将 Lambda 表达式作为方法参数传递

    我有一个 lambda 表达式 我希望能够传递和重用它 这是代码 public List
  • ms-access 本地化和默认布尔值

    我们的访问客户端即时生成 SQL 插入 更新和删除指令 并在 MS SQL Server 上发送 大多数用户拥有 Access 2007 的运行时版本 少数用户使用完整的 MS Access 版本 2003 或 2007 今天早上 我们国外