【问题标题】:ADODB query become weird characters with Vietnamese charactersADODB 查询变成带有越南字符的怪异字符
【发布时间】:2016-09-10 18:01:27
【问题描述】:

我有来自其他页面的关于在 VBA 中使用 excel 作为数据库的代码和示例文件。我对主题打击有同样的问题: VBA ADODB Query Mysql returns character corruption 但我的代码有:

cnn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & _
ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name

有没有办法解决这个问题?

以下是代码的详细信息(如果阅读时间太长,请见谅): http://chandoo.org/wp/2012/04/02/using-excel-as-your-database/

当我在工作表“数据”中使用越南语字符并运行 SQL 时,越南语字符都显示为 ???

希望收到一些修复它的指南。

对不起,这里是主要代码 有关工作代码,数据及其工作原理等更多信息,...请从上面的chandoo链接下载完整文件,因为我不知道如何在此处附加文件:

            Option Explicit
            Public cnn As New ADODB.Connection
            Public rs As New ADODB.Recordset
            Public strSQL As String

            Public Sub OpenDB()
                If cnn.State = adStateOpen Then cnn.Close
                cnn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & _
                ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name
                cnn.Open
            End Sub

            Public Sub closeRS()
                If rs.State = adStateOpen Then rs.Close
                rs.CursorLocation = adUseClient
            End Sub

【问题讨论】:

  • 请分享您的代码

标签: database vba adodb


【解决方案1】:

我找到了答案 建议使用 OLE DB 代替 ODBC。 OLE DB 支持 unicode 字符。我试过了,效果很好。 cnn.ConnectionString = "Driver={Microsoft Excel 驱动程序 (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & _ ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name 应该用连接字符串替换 提供者=Microsoft.ACE.OLEDB.12.0;数据源=c:\myFolder\myExcel2007file.xlsx; 扩展属性="Excel 12.0 Xml;HDR=YES";

感谢您的关心

【讨论】:

    猜你喜欢
    • 2016-03-18
    • 1970-01-01
    • 2018-04-28
    • 2010-11-07
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 2023-03-20
    • 2010-12-31
    相关资源
    最近更新 更多