Questo codice mi fa l'aggiornamento di un record o l'inserimento di uno nuovo a seconda dell'azione, solo che funziona se aggiorno un record esistente, ma non mi permette di crearne uno nuovo.

codice:
Dim dt_Aziende As New DataTable
        Dim row_Azienda As DataRow

        With OLE_cn
            If .State = ConnectionState.Closed Then .Open()
        End With
        If cmd_Salva.CommandArgument = "" Then
            OLE_cmd.CommandText = "SELECT TOP 1 * FROM Aziende"
            OLE_da.Fill(dt_Aziende)
            With dt_Aziende
                row_Azienda = .NewRow
                .Rows.Add(row_Azienda)
            End With
        Else
            OLE_cmd.CommandText = "SELECT * FROM Aziende WHERE ID = " & cmd_Salva.CommandArgument
            OLE_da.Fill(dt_Aziende)
            row_Azienda = dt_Aziende.Rows(0)
        End If

        With row_Azienda
            .Item("Nome") = txt_Nome.Text.Trim
            .Item("Server") = txt_Server.Text.Trim
            .Item("Username") = txt_Username.Text.Trim
            .Item("Password") = txt_Password.Text.Trim
            .Item("DatabaseApplicazione") = IIf(lst_Database_Applicazione.SelectedIndex = 1, txt_NomeDatabaseApplicazione.Text.Trim, lst_Database_Applicazione.SelectedValue)
            .Item("DatabaseMagoXP") = lst_Database_MagoXP.SelectedValue
            .Item("Attiva") = chk_Attiva.Checked
        End With
        OLE_cb.DataAdapter = OLE_da
        OLE_da.Update(dt_Aziende)
Il messaggio di errore restituito è Errore di sintassi nell'istruzione INSERT INTO