【问题标题】:INSERT INTO EXCEL AS DB FROM VISUAL BASIC FORM [duplicate]从视觉基本形式插入 EXCEL AS DB [重复]
【发布时间】:2018-06-15 06:09:27
【问题描述】:

我想将文本框数据从 Visual Basic 的用户窗体放入 Excel (Sheet1) 作为数据库。我正在使用 Excel 2016,工具是 Visual Studio 2013 Pro。我创建了这些表单,例如:

,代码是:

       Imports System.Data.OleDb
       Imports System.IO
       Public Class Form2

   Dim cn As OleDbConnection
   Dim cm As OleDbCommand


Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Const path As String = "C:\\Users\\echat\\Desktop\\Book2.xls"
    ' Const connstring As String = "Provider==Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;HDR=YES;"""
    ' cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=C:\Connect To Excel\Book2.xls;extended properties=excel 5.0;"
    cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=C:\Connect To Excel\Book2.xls;Extended Properties=""Excel 12.0 Xml;HDR=YES"";"

    cn.Open()

    With cm
        .Connection = cn
        .CommandText = "Insert into [Sheet1]values ('" & TextBox1.Text & "','" & TextBox2.Text & "') "
        .ExecuteNonQuery()

    End With

    cn.Close()
    MsgBox("Success", MsgBoxStyle.Information, Text)

End Sub
End Class

我已经尝试过,但它在这些行中给出了错误:任何人都可以纠正它吗?

System.NullReferenceException:对象引用未设置为实例 一个对象。

【问题讨论】:

  • Excel 不是数据库
  • 我没有说 Excel 是数据库!!!...我已经说过“Excel 作为数据库”

标签: excel vb.net visual-studio


【解决方案1】:

你还没有初始化你的连接对象。

试试这个:

   Dim cn As new OleDbConnection
   Dim cm As new OleDbCommand

【讨论】:

  • 这应该可以解决问题。但是 OP 应该意识到他应该将连接的范围限制在使用它的地方。即在Button2_Click 中声明并处理它,以及使用它的任何其他方法。
  • 我已经在 Button2_Click 事件中声明了“Dim cn As new OleDbConnection Dim cm As new OleDbCommand”,但它仍然给出同样的问题和错误
  • @EshanChattaraj 在您提供的代码中没有
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-05
相关资源
最近更新 更多