none
Error de Sintaxis en Insert Intro en VB 2012 con Access 2013. RRS feed

  • Pregunta

  • Buenas Tardes, Agradecido por la amable atención.

    Aquí les envío el programa completo, el cual me viene fallando por error de sintaxis en INSERT INTRO, Verifique campo por campo. 

    Me manda error de Sintaxis en INSERT INTRO, Relacionado con ExecuteNonQuery, Estoy trabajando con VB 2012 y Access 2013.

    ImportsSystem.Data

    Imports System.Data.OleDb

    Public Class Form1

        Dim conexion As New OleDbConnection

        Dim DA As OleDbDataAdapter

        Dim DS As New DataSet

        Dim CB As OleDbCommandBuilder

        Dim posicion As Integer

        Dim cmd1 As String = "Select *from Reg-Propietarios"

        Dim cmd As OleDb.OleDbCommand

        Dim sqlinsert As String

        Dim sql As String

            Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

            conexion.Open()

            cmd = New OleDb.OleDbCommand

            cmd.Connection = conexion

            Dim query As String = "INSERT INTO Reg-propietarios(Nroinmueble,Propietario,NomInmueble,Direccion,Corregimiento,Ciudad,CodPostal,Metroscdosinmueb,CantPstosEstac,PtoMaletero,Alquilado) VALUES(@Nroinmueble,@Propietario,@NomInmueble,@Direccion,@Corregimiento,@Ciudad,@CodPostal,@Metroscdosinmueb,@CantPstosEstac,@PtoMaletero,@Alquilado)"

            Dim cmd2 As New OleDbCommand(query, conexion)

            cmd2.Parameters.AddWithValue("@Nroinmueble", txtapto.Text)

            cmd2.Parameters.AddWithValue("@Propietario", txtprop.Text)

            cmd2.Parameters.AddWithValue("@NomInmueble", txtinmueble.Text)

            cmd2.Parameters.AddWithValue("@Direccion", txtdireccion.Text)

            cmd2.Parameters.AddWithValue("@Corregimiento", txtcgmto.Text)

            cmd2.Parameters.AddWithValue("@Ciudad", txtciudad.Text)

            cmd2.Parameters.AddWithValue("@CodPostal", txtpostal.Text)

            cmd2.Parameters.AddWithValue("@Metroscdosinmueb", txtmetros.Text)

            cmd2.Parameters.AddWithValue("@CantPstosEstac", txtestac.Text)

            cmd2.Parameters.AddWithValue("@PtoMaletero", txtmaletero.Text)

            cmd2.Parameters.AddWithValue("@Alquilado", txtalq.Text)

            Try

                If ((cmd2.ExecuteNonQuery() <> 0)) Then

                    MessageBox.Show("Datos Ingresados Correctamente")

                    conexion.Close()

                    MsgBox("Datos Incluidos", vbInformation, "Correcto")

                End If

            Catch ex As Exception   'En caso que se produzca una excepcion en el proceso.

                MessageBox.Show(ex.ToString)

                MsgBox("Error en Grabacion", vbInformation, "Alerta")

            End Try

           

    martes, 9 de febrero de 2016 22:16

Todas las respuestas

  • Este es un error que se repite bastante.

    Cuando utilizas OleDb no debes indicar parámetros con nombre en la sentencia si no utilizar marcadores de posición (?) para los parámetros:

    Dim query As String = "INSERT INTO Reg-propietarios(Nroinmueble,Propietario,NomInmueble,Direccion,Corregimiento,Ciudad,CodPostal,Metroscdosinmueb,CantPstosEstac,PtoMaletero,Alquilado) VALUES(?,?,?,?,?,?,?,?,?,?,?)"
            Dim cmd2 As New OleDbCommand(query, conexion)
            cmd2.Parameters.AddWithValue("@Nroinmueble", txtapto.Text)
            cmd2.Parameters.AddWithValue("@Propietario", txtprop.Text)
            cmd2.Parameters.AddWithValue("@NomInmueble", txtinmueble.Text)
            cmd2.Parameters.AddWithValue("@Direccion", txtdireccion.Text)
            cmd2.Parameters.AddWithValue("@Corregimiento", txtcgmto.Text)
            cmd2.Parameters.AddWithValue("@Ciudad", txtciudad.Text)
            cmd2.Parameters.AddWithValue("@CodPostal", txtpostal.Text)
            cmd2.Parameters.AddWithValue("@Metroscdosinmueb", txtmetros.Text)
            cmd2.Parameters.AddWithValue("@CantPstosEstac", txtestac.Text)
            cmd2.Parameters.AddWithValue("@PtoMaletero", txtmaletero.Text)
            cmd2.Parameters.AddWithValue("@Alquilado", txtalq.Text)


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    martes, 9 de febrero de 2016 22:27
  • Hola:

     La verdad no encuentro ningún error de sintaxis en tu "consulta" en lo demás es mejorable en un 80%, el único error que veo pueda disparar "Error de sintaxis" es por el nombre de tu tabla: Reg-Propietarios, por ahí prueba o cambiando el nombre de la tabla por "Reg_Propietarios" o usar las llaves [Reg-Propietarios].

     Como nota, en Access no es necesario ponerle nombres a los parámetros lo importante es asignarlos en el mismo orden en que están declarados, de ahí en fuera no afecta en nada mas.


    Saludos desde Monterrey, Nuevo León, México!!!

    martes, 9 de febrero de 2016 23:46