我已经创建了一个与MS Access 2010(.accdb)扩展一起使用的程序。该计划完全正常。
问题是:
当程序安装到没有安装MS Office的另一台PC上时,程序中定义的异常会返回连接错误。是的,当然是因为程序无法在没有安装办公室的情况下读取(.accdb)文件。
需要解决方案:
有没有办法导入此(.accdb)以便读取和修改它。或者,当应用程序安装到任何非办公室安装的PC时,还有其他简单的解决方案吗?
我的程序代码演示是:
连接字符串:
Imports SpeechLib
Imports System.IO
Module MdlIPray5ve
Public con As OleDb.OleDbConnection
Public cmd As OleDb.OleDbCommand
Public sql As String
Public speaker As New SpVoice
Public Function connection() As String
Try
connection = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=azan_time.accdb; Persist Security Info=False;"
Catch ex As Exception
MessageBox.Show("Could not connect to the Database. Check your Connection!")
End Try
End Function
访问数据库的东西:
Private Sub UpdateAlarmTone()
Try
Dim cmdText = "UPDATE alarm_tone SET subhi= @subhi1, zuhur =@zuhur1, aser = @aser1, megrib = @megrib1, isha = @isha1"
Using con As New OleDb.OleDbConnection(connection)
Using cmd As New OleDb.OleDbCommand(cmdText, con)
con.Open()
cmd.Parameters.AddWithValue("@subhi1", txtSubhi.Text)
cmd.Parameters.AddWithValue("@zuhur1", txtZuhur.Text)
cmd.Parameters.AddWithValue("@aser1", txtAser.Text)
cmd.Parameters.AddWithValue("@megrib1", txtMegrib.Text)
cmd.Parameters.AddWithValue("@isha1", txtIsha.Text)
Dim infor As String
infor = cmd.ExecuteNonQuery
If (infor > 0) Then
MsgBox("Alarm Tone record updated successfuly")
Else
MsgBox("Update failed!")
End If
End Using
End Using
Catch ex As Exception
MessageBox.Show("There is a problem with your connection!")
End Try
End Sub
答案 0 :(得分:1)
通过ODBC自行创建Access数据库。 您还可以使用其他可用的数据库(例如,MySQL,Firebird,SQLite和其他数据库),如果安装了客户端,则无需为客户付出任何代价(或者,对于某些人来说,如果您将其包含在安装中他们)。
使用MS Office COM自动化要求在运行自动化的计算机上安装MS Office产品。 有第三方代码库用自己的代码替换该功能,这意味着您的应用程序可以创建自己的Access兼容文件。但是,您的用户仍需要Access才能使用它们