0

I am new to visual basic . I am writing to insert a new record into my ms access database by visual basic 2010. Here is my code.

Imports System.Data.OleDb Public Class Form9

Dim provider As String
Dim dataFile As String
Dim connString As String
Dim myConnection As OleDbConnection = New OleDbConnection

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = C:\Users\AMEN\Documents\Railway.accdb"
    'Change the following to your access database location
    dataFile = "C:\Users\AMEN\Documents\Railway.accdb"
    connString = provider & dataFile
    myConnection.ConnectionString = connString

    myConnection.Open()
    Dim str As String
    str = "insert into Table2 ([P_Name], [Age], [Phone], [Train_Name], [Seat_No], [Berth]) values (?, ?, ?, ?, ?,?)"
    Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
    cmd.Parameters.Add(New OleDbParameter("P_Name", CType(TextBox1.Text, String)))
    cmd.Parameters.Add(New OleDbParameter("Age", CType(TextBox2.Text, String)))
    cmd.Parameters.Add(New OleDbParameter("Phone", CType(TextBox3.Text, String)))
    cmd.Parameters.Add(New OleDbParameter("Train_Name", CType(TextBox4.Text, String)))
    cmd.Parameters.Add(New OleDbParameter("Seat_No", CType(TextBox5.Text, String)))
    cmd.Parameters.Add(New OleDbParameter("Berth", CType(TextBox6.Text, String)))
    Try
        cmd.ExecuteNonQuery()
        cmd.Dispose()
        myConnection.Close()
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox3.Clear()
        TextBox4.Clear()
        TextBox5.Clear()

        MsgBox("Your Ticket was booked successfully ! ")

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub

End Class

When I executed this code . It gave me an error in myConnection.Open() . It said that .Open() is not a valid name . Please help me !

  • I have had a similar error before. And I have found it useful to open the other Access database first dim accessApp set accessApp = createObject("Access.Application") accessApp.visible = False accessApp.OpenCurrentDataBase("C:\path.accdb") accessApp.Run "myLinker" – izzymo Feb 16 '15 at 13:42
  • Do Not try to reuse the same connection object over and over. That is not how they are meant to be used. See [this answer](http://stackoverflow.com/q/28213871/1070452) – Ňɏssa Pøngjǣrdenlarp Feb 16 '15 at 13:48

0 Answers0