vba - 在代码中插入撇号或引号

标签 vba char

当循环的 i 等于撇号时,以下代码将失败。

For i = 1 To 127
    fillTable = "INSERT INTO whiteTable VALUES ('" & Chr(i) & "field', 'fie" & Chr(i) & "ld', 'field" & Chr(i) & "')"
    DoCmd.RunSQL fillTable
Next i

我认为当chr(i)等于引号时也会出现问题。我搜索了添加撇号的方法,并想出了使用双引号 ""x""或双撇号 ''x''。由于某种原因,这不起作用,因为我不断收到错误。此外,我假设这个解决方案仅在我知道有撇号时才适用,但这里只有当i为39或34时才会出现问题。你知道吗?知道在代码中使用这些字符的方法吗?

如果没有办法做到这一点,我将从循环中排除 39 和 34 (', ")。还有其他字符会给我带来问题吗(例如 `)?

最佳答案

您可以使用QueryDef类来避免撇号问题。即使有任何其他字符会给您带来问题,此类也可确保它们被正确转义。

下面是可以实现这一目的的代码:

Sub test()
    Dim i As Long
    Dim qry As String
    Dim qryDef As QueryDef


    qry = "INSERT INTO whiteTable VALUES ([a], [b], [c])"


    Set qryDef = CurrentDb.CreateQueryDef("FillTable", qry)


    For i = 1 To 127
        With qryDef
            .Parameters("a").Value = Chr(i) & "field"
            .Parameters("b").Value = "fie" & Chr(i) & "ld"
            .Parameters("c").Value = "field" & Chr(i)
            Call .Execute(dbFailOnError)
        End With
    Next i

End Sub

关于vba - 在代码中插入撇号或引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33783748/

相关文章:

SQL NOOB - 嵌套/子查询

c - 是否有机器,其中 sizeof(char) != 1,或至少 CHAR_BIT > 8?

C++ 字符分配

使用 char 数组的 C 结构初始化

c - 使用 char 初始化结构的函数 - 解释一下我的警告吗?

vba - 为什么我的表格还在内存中

vba - 查找合并单元格vba的列号

excel - Excel 的 VBA UDF 变得有值(value)!在另一个 UDF 上使用 hidden = true 之后

c - strlen 数组有不同的结果

.net - 如何在 AutoCAD 中选择给定点上的元素?