我正在尝试创建一个Windows窗体应用程序,它将信息存储在一个访问数据库中,然后可以在Excel中查看。
我已经将它写入数据库,并且它工作正常,直到我尝试将数据导入Excel。然后我得到错误:“操作必须是可更新的查询”
这似乎与以某种方式导入Excel的数据库有关。
有谁知道这是什么,可以做些什么?
我需要在excel中查看数据的原因是我非常保守和反访问的同事,他们已经习惯了。
这是我正在尝试的代码:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Using connection As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\users\espen\documents\visual studio 2012\Projects\ProjectName\database.accdb;Persist Security Info=False;")
connection.Open()
Dim sqlString As String = "INSERT INTO TableName ([column1], [column2]) VALUES('" & TextBox1.Text & "', '" & TextBox2.Text & "')"
Using command As OleDb.OleDbCommand = New OleDb.OleDbCommand(sqlString, connection)
command.ExecuteNonQuery()
End Using
connection.Close()
End Using
End Sub
答案 0 :(得分:3)
我能够重新创建你的问题。它似乎是由Excel创建与Access数据库的连接时使用的默认设置引起的。默认连接字符串包含选项
Mode=Share Deny Write;
所以当Excel打开连接时,没有其他进程可以写入Access数据库。
以下修复似乎对我有用:
在Excel中,单击功能区“数据”选项卡上的“连接”按钮。在列表中选择适当的连接后,单击“属性...”按钮。在“定义”选项卡上,编辑“连接字符串”以使用
Mode=Share Deny None;
如下所示:
保存更改,然后关闭并重新打开Excel工作簿。