Question

I has been created a program that works with MS Access 2010 (.accdb)extension. The program is fully works fine.

The issue is:

When the program is installed into another PC that has no MS Office installed, then the Exception that defined in the program returns connection error. Yes of course because the program can't read the (.accdb) file without office installed.

Need solution:

Is there any way to import this (.accdb) in order to read and modify it. Or is there any other simple solution that works when the application is installed to any non office installed PC?

The Demo of My program Code is:

Connection String:

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

Something that Accesses the Database:

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
Was it helpful?

Solution

create the Access database via ODBC, that comes with Windows itself. You can also use other databases (eg., MySQL, Firebird, SQLite, and others) that are available that wouldn't necessarily cost your client anything if they installed it (or, for some, if you included it in your installation for them).

Using the MS Office COM automation requires that the MS Office product be installed on the machine running the automation. There are third-party code libraries that replace that functionality with their own code, meaning your app could create it's own Access-compatible files. However, your users would still need Access to use them

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top