Foros del Web » Programación para mayores de 30 ;) » Programación General »

Form en Visual Basic 2010 no inserta en tabla en Access 2010

Estas en el tema de Form en Visual Basic 2010 no inserta en tabla en Access 2010 en el foro de Programación General en Foros del Web. Hola: Después de buscar desde ayer la solución a este problema, les paso a comentar lo que intento hacer: Objetivo: - Registrar un contacto mediante ...
  #1 (permalink)  
Antiguo 19/04/2012, 11:37
 
Fecha de Ingreso: marzo-2008
Mensajes: 11
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Form en Visual Basic 2010 no inserta en tabla en Access 2010

Hola:

Después de buscar desde ayer la solución a este problema, les paso a comentar lo que intento hacer:

Objetivo:
- Registrar un contacto mediante un formulario.

Problema:
- No se logra hacer INSERT a la BBDD.

Datos adicionales:
- La conexión está correcta (abierta).
- Los SELECT funcionan sin problema, la cadena está bien.
- El INSERT está correcto porque logro insertar registros sin problemas cuando ejecuto la sentencia diretamente en la BBDD.
- GenerarCodigoPersona() genera el código de la persona (tipo número).
- Para validar si se estaban grabando los registros los voy imprimiendo en el grid, sin embargo, al abrir la BBDD y hacer consulta SQL no se ven los nuevos registros.
- Cuando cierro la aplicación el contador del código vuelve a tomar el máximo del registro sin contar los grabados (porque en el select tampoco aparecen).
- ¿Será un problema de permisos? Porque sea crea un archivo bloqueado llamado Telemarketing_DDBB.laccdb (adicional al Telemarketing_DDBB.accdb) mientras el Visual está abierto.

Código:
Public Class frmRegistrarContacto
    Dim con As New OleDb.OleDbConnection(Variables.StrConexion)
    
    Private Sub btnRegistrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegistrar.Click
        If txtAuxcodEmp.Text <> "" Then

            con.Open()

            Dim sql As String = "INSERT INTO Persona (codPer, DNIPer, codEmp, carPer, nomPer, " & _
                            "telPer, telAnePer, corPer, dirPer, booContacto, comPer, fecRegPer) " & _
                            " VALUES(" & GenerarCodigoPersona() & ",'" & Trim(txtDNIPer.Text) & "'," & _
                            "'" & Trim(txtAuxcodEmp.Text) & "','" & Trim(txtCarPer.Text) & "','" & _
                            Trim(txtnomPer.Text) & "', '" & Trim(txtTelPer.Text) & "','" & _
                            Trim(txtTelAnePer.Text) & "','" & Trim(txtcorPer.Text) & "','" & _
                            Trim(txtDirPer.Text) & "',1,'" & Trim(txtComPer.Text) & "', '" & Date.Today().ToString("dd/MM/yyyy") & "')"

            Dim cmd As New OleDb.OleDbCommand(sql, con)

            MessageBox.Show(sql)

            cmd.ExecuteNonQuery()
            con.Close()

        Else
            MessageBox.Show("Ingresar Datos de Empresa")
        End If
    End Sub

End Class 
Les dejo adicionalmente esta función, en caso algo falle...

Código:
    Function GenerarCodigoPersona()
        Dim CodPerx As Integer
        Dim dt As New DataTable
        Dim ds As New DataSet
        ds.Tables.Add(dt)

        Dim da As New OleDb.OleDbDataAdapter

        Dim sql As String = "SELECT MAX(codPer) from Persona"

        da = New OleDb.OleDbDataAdapter(sql, con)
        da.Fill(dt)

        If dt.Rows.Count > 0 Then
            CodPerx = dt.Rows(0).Item(0)
        Else
            MessageBox.Show("ERROR EN LA GENERACIÓN DEL CÓDIGO DE PERSONA")
        End If
        CodPerx = CodPerx + 1

        Return CodPerx.ToString()

    End Function 
Muchas gracias por cualquier idea de solución que puedan tener. Saludos.

Etiquetas: access, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:35.