Hello Friends and Colleagues,
I am using a Microsoft Access 2007/Office 2007 Database with Visual Basic 2010 Winforms and the application will not insert new records.
I am working with it through the OLE DB Provider. My connection string is as follows:
<connectionstrings>
<add name="QFSPOS.My.MySettings.QFSDataConnectionString" connectionstring="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\QFSData.accdb">
providerName="System.Data.OleDb" />
</add></connectionstrings>
My code is like this:
Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.Click
Dim dsPT As New QFSPOS.dstblPaymentTypes, dsP As New QFSPOS.dstblPayments
Dim taPT As New QFSPOS.dstblPaymentTypesTableAdapters.tblPaymentTypesTableAdapter
Dim taP As New QFSPOS.dstblPaymentsTableAdapters.tblPaymentsTableAdapter
Dim rowP As QFSPOS.dstblPayments.tblPaymentsRow, rowPT As QFSPOS.dstblPaymentTypes.tblPaymentTypesRow
Try
taPT.FillByPaymentName(dsPT.tblPaymentTypes, cmbPaymentType.Text)
If dsPT.tblPaymentTypes.Rows.Count = 0 Then
MsgBox("Pay method not found or does not exist", vbInformation, strProgTitle)
Exit Sub
End If
rowPT = dsPT.tblPaymentTypes.Rows(0)
taP.Fill(dsP.tblPayments)
rowP = dsP.tblPayments.NewtblPaymentsRow
rowP.PaymentTypeID = rowPT.PaymentTypeID
rowP.PaymentAmount = CDec(txtTransCost.Text)
rowP.PaymentDateTime = CDate(txtTransDateTime.Text)
dsP.tblPayments.Rows.Add(rowP)
taP.Update(dsP.tblPayments)
Catch ex As Exception
MsgBox(ex.Message, vbExclamation, strProgTitle)
End Try
End Sub
I have also tried an insert statement as in:
taP.Insert(rowPT.PaymentTypeID, CDec(txtPaymentAmount.Text), CDate(txtTransDateTime.Text))
The System simply refuses to insert the row. Is there something I am doing wrong or are there peculiarities to using the Jet OLE DB that I am missing. This same code works with an SQL Server Express database with no trouble. Please lend an expert hand.