【问题标题】:How do I display Data from Database in VBA Excel?如何在 VBA Excel 中显示数据库中的数据?
【发布时间】:2015-09-18 01:33:56
【问题描述】:

我在数据库中有一个名为“UOM”的列,我想通过打开一个 SQL 查询将它显示在一个名为“Qty”的值旁边。但它显示一个错误,说“行/列不存在数据”。这是我的代码。

Dim Oledbconn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:/inetpub/wwwroot/ProjectIntegrated/Inven.mdb;Persist Security Info=True")
        Dim cmd As New OleDbCommand
        Dim reader As OleDbDataReader

        cmd.CommandText = "Select UOM FROM Master WHERE IPN = '" & Session("PO IPN")(SummaryCounter) & "'"
        cmd.CommandType = CommandType.Text
        cmd.Connection = Oledbconn

        Oledbconn.Open()
        reader = cmd.ExecuteReader()

        oSheet.Range("F" & ExcelCounter).Value = "" & Session("PO Qty") + reader.Item("UOM") + (POTableCounter)
        oSheet.Range("F" & ExcelCounter).HorizontalAlignment = -4108


        Oledbconn.Close()

【问题讨论】:

    标签: sql vb.net vba excel


    【解决方案1】:

    单独执行 reader 是不行的。您还必须真正阅读。 试试这个:

    Oledbconn.Open()
    reader = cmd.ExecuteReader()
    
    if (dreader.HasRows)
    {
        dreader.Read();
        oSheet.Range("F" & ExcelCounter).Value = "" & Session("PO Qty") + reader.Item("UOM") + (POTableCounter)
        oSheet.Range("F" & ExcelCounter).HorizontalAlignment = -4108
    }
    
    Oledbconn.Close()
    

    【讨论】:

    • 我已经尝试过了,但它显示此错误“未为类型'String()'和字符串“EA”定义运算符'+'。 EA是@LocEngineer列中的文本值数据
    • 请为您的 Session 和 UOM 发布示例值。 POTableCounter 是 int 吗?摆脱"" &
    • Ummm... insertCommands 与上述代码有什么关系吗? Session 变量有哪些?另外,根据stackoverflow.com/questions/4670247/…,请始终使用& 运算符在VB.Net 中连接字符串。
    • "EA" 和 "LOT" 对于他们中的大多数。它们是文本值@LocEngineer
    • 在这种情况下试试这个:oSheet.Range("F" & ExcelCounter).Value = Session("PO Qty").ToString() & reader.Item("UOM").ToString() + (POTableCounter).ToString()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多