【问题标题】:Access vba code to update a field with a text that is an html-code访问 vba 代码以使用 html 代码的文本更新字段
【发布时间】:2020-10-25 12:08:38
【问题描述】:

我已经编写了一个代码,该代码可以生成文本并通过 msgbox 显示该 txt。 现在我也想要这个 txt 在表格中,因为我需要其他人复制这个 txt 并将其粘贴到其他地方。

在表格中,我为德语 txt 创建了一个备忘录字段 txt_GER。

在我写的代码中:

DoCmd.RunSQL ("UPDATE Table SET txt_GER=" & txt & " WHERE ID=" & rs.Fields("Id"))

当我尝试运行此代码时,我收到以下消息: 运行时错误 3075: 查询表达式中的语法错误(缺少运算符)

<B>xxx</B><ul class="yyy"><li>zzz<li>

我想要这个包含 html 代码的 txt 到这个字段中。

有什么建议吗?

【问题讨论】:

    标签: html vba ms-access sql-update


    【解决方案1】:

    改用参数,例如:

    With CurrentDb.CreateQueryDef("", "update Table set txt_GER=@txt where ID=@id")
        .Parameters(0) = txt
        .Parameters(1) = rs.Fields("Id")
        .Execute
    End With
    

    使用您当前的代码,txt 变量保存的值中存在的字符串分隔符会过早终止 SQL 语句。

    【讨论】:

    • 我从未使用过 'with' 或 createquerydef。我现在在 Parameters(0) --> 3271 --> 上收到一条失败消息 --> google 了解到这可能与超过 255 个字符的文本长度有关。那么我应该在查询中定义参数吗? stackoverflow.com/questions/37049626/…
    • 正如 HansUp 在链接问题中显示的那样,这不适用于 > 255 个字符。在使用 SQL 连接变量时,您可以使用 Recordset.Edit 或您的原始方法,使用 Gustav 的 CSql() function。它将安全地封装txt。 @克莱奥
    猜你喜欢
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 2016-02-27
    • 2013-10-02
    • 1970-01-01
    • 2018-03-25
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多