none
Error insertar datos desde VBA usando formulario RRS feed

  • Pregunta

  • Un gusto en saludar maestros:

    Me gustaría me ayudaran en un temita   ya que por más que he intentado aún no puedo corregirlo, la cosa es que debo ingresar datos desde una consulta hecha en VBA rescatando datos de un formulario todo esto en Access 2007, les dejo el código:

     

    Private Sub Ingresar_Click()
    On Error GoTo Err_Ingresar_Click
    Dim fecha As Variant
    Dim num, num1 As Integer
    Dim strSQL As String
    Dim c As Control
    If IsNull(Form!N_SERIE) = True Then
    num = 0
    retvalue = MsgBox("Debe ingresar n° de serie", vbOKCancel)
    Else
    num = 1
    End If
    If IsNull(Form!FECHA_INGRESO) = True Then
    num1 = 0
    retvalue = MsgBox("Debe ingresar una fecha válida", vbOKCancel)
    Else
    num1 = 1
    End If
    If num = 1 And num1 = 1 Then
    'fecha = IIf(Form!FECHA_INGRESO.Value, 0, Form!FECHA_INGRESO)
    'fecha = Nz(fecha, 0)
    'MsgBox "Fecha es" & CDate(fecha)
    strSQL = "INSERT INTO COMPONENTE (N_SERIE, DESCRIPCIÓN, MARCA, MODELO, FRAME, CANTIDAD, POTENCIA, COD_REPARABLE, VALOR_NUEVO, COD_STOCK, F_ING_COMP) Values ('" & Form!N_SERIE.Value & "', '" & Form!DESCRIPCION_COM.Value & "', '" & Form!MARCA.Value & "', '" & Form!MODELO.Value & "', '" & Form!FRAME.Value & "', " & IIf(IsNull(Form!CANTIDAD.Value), "NULL", Form!CANTIDAD) & ", '" & Form!POTENCIA.Value & "', " & IIf(IsNull(Form!CR.Value), "NULL", Form!CR) & ", " & IIf(IsNull(Form!VALOR_NUEVO.Value), "NULL", Form!VALOR_NUEVO) & ", " & IIf(IsNull(Form!CODIGO_STOCK.Value), "NULL", Form!CODIGO_STOCK) & ", CDate('" & Form!FECHA_INGRESO.Value & "'))"
    DoCmd.RunSQL (strSQL)
    MsgBox "Registros ingresados"
    End If

     

    Exit_Ingresar_Click:
    Exit Sub
    Err_Ingresar_Click:
    MsgBox Err.Description
    Resume Exit_Ingresar_Click

     

    Bueno la cosa es que al ingresar la primera consulta todo resulta bien, el problema se da cuando deseo ingresar una segunda consulta.He insertado un botón con el cual limpio los campos para que todos los textbox me queden en blanco, utilizando la siguiente función:

     

    Sub ClearFormText(frm As Form)
    Dim ctl As Control
    For Each ctl In frm.Controls
    If ctl.ControlType = acTextBox Then
    ctl.Value = ""
    End If
    Next ctl
    End Sub

     

    Llamo la función desde un botón llamado limpiar, y el proceso lo realiza, el problema se da cuando vuelvo a ingresar los datos en los textbox, presiono el botón guardar y me arroja "error de sintaxis en la instrucción INSERT INTO", aquí he quedado no sé que más hacer.

     

    Les pido ayuda ya que llevo mucho tiempo con este problema, además les agradezco de antemano.

    martes, 11 de febrero de 2014 13:10

Todas las respuestas