Ayuda con error al insertar valores en una base de datos access desde un formulario en Visual Basic
Soy algo nuevo en visual basic y estoy haciendo un programa de producción, el caso es que he creado el mismo formulario para cada entrada de datos que almaceno en una base de datos de access y cree un formulario en donde me arroja el siguiente error "NO SE HAN ESPECIFICADO VALORES PARA ALGUNOS DE LOS PARÁMETROS REQUERIDOS" RUN-TIME ERROR "-214717904(80040E10)"
Me he cansado de buscar y no encuentro el problema incluso hasta lo volví a hacer desde cero y me sigue dando el mismo error. Busque en foros y dicen que el error esta en que uno de los registros esta vacío o es de campo numérico aquí te dejo el código la linea que esta en negrita es donde me arroja el error pero en los otros formularios me trabaja bien
Option Explicit
Private Sub ChameleonBtn1_Click()
Unload Me
End Sub
' Ordena en forma Ascendente y descendente el LV
''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub CmdOrdenar_Click(Index As Integer)
CmdOrdenar(0).Value = False
CmdOrdenar(1).Value = False
CmdOrdenar(Index).Value = True
Call FiltrarPan
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub Form_Load()
With frmReg_Mant_Pan
Me.Move (.Left + .LVPan.Left), _
(.LVPan.Height + .LVPan.Top + .Top + 500)
End With
Call FiltrarPan
End Sub
Private Sub txtSearch_Change()
Call FiltrarPan
End Sub
Private Sub Combo1_Click()
Call FiltrarPan
End Sub
Private Sub Combo2_Click()
Call FiltrarPan
End Sub
Public Sub FiltrarPan()
Dim Campo, OrderByCampo, Orden As String
Dim sql As String
If Combo1.ListIndex = -1 Then
Combo1.ListIndex = 0
End If
If Combo2.ListIndex = -1 Then
Combo2.ListIndex = 0
End If
If Combo1.ListIndex = 0 Then
Campo = "IdBloque"
ElseIf Combo1.ListIndex = 1 Then
Campo = "Tipo_Goma"
ElseIf Combo1.ListIndex = 2 Then
Campo = "Referencia"
End If
Select Case Combo2.ListIndex
Case 0: OrderByCampo = "IdBloque"
Case 1: OrderByCampo = "Tipo_Goma"
Case 2: OrderByCampo = "Referencia"
Case 3: OrderByCampo = "Fecha"
End Select
If CmdOrdenar(0).Value Then Orden = "asc"
If CmdOrdenar(1).Value Then Orden = "desc"
' si el recorset está abierto lo cierra
If RsPan.State = adStateOpen Then
RsPan.Close
End If
sql = "SELECT * FROM Bloques Where " & _
Campo & " like '" & txtSearch & _
"%' order by " & OrderByCampo & " " & Orden
RsPan.Open sql, CnnPan, adOpenStatic, adLockOptimistic
Call CargarListViewPan(frmReg_Mant_Pan.LVPan, RsPan)
End Sub
en la tabla de access los campos que tengo son los siguientes:
IdBloque = Autonumerico
Tipo_Bloque = Texto
Referencia = Texto
Ancho = Numerico
Largo = Numerico
Altura_1 = Numerico
Altura_2 = Numerico
Descripcion = Texto
Pies_1 = Numerico
Pies_2 = Numerico
Existencia = Numerico
Fecha = Date
Estatus = Texto
Si me puedes ayudar te lo agradecería infinitamente.
Cualquier cosa me puedes responder a mi mail [email protected]
Me he cansado de buscar y no encuentro el problema incluso hasta lo volví a hacer desde cero y me sigue dando el mismo error. Busque en foros y dicen que el error esta en que uno de los registros esta vacío o es de campo numérico aquí te dejo el código la linea que esta en negrita es donde me arroja el error pero en los otros formularios me trabaja bien
Option Explicit
Private Sub ChameleonBtn1_Click()
Unload Me
End Sub
' Ordena en forma Ascendente y descendente el LV
''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub CmdOrdenar_Click(Index As Integer)
CmdOrdenar(0).Value = False
CmdOrdenar(1).Value = False
CmdOrdenar(Index).Value = True
Call FiltrarPan
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub Form_Load()
With frmReg_Mant_Pan
Me.Move (.Left + .LVPan.Left), _
(.LVPan.Height + .LVPan.Top + .Top + 500)
End With
Call FiltrarPan
End Sub
Private Sub txtSearch_Change()
Call FiltrarPan
End Sub
Private Sub Combo1_Click()
Call FiltrarPan
End Sub
Private Sub Combo2_Click()
Call FiltrarPan
End Sub
Public Sub FiltrarPan()
Dim Campo, OrderByCampo, Orden As String
Dim sql As String
If Combo1.ListIndex = -1 Then
Combo1.ListIndex = 0
End If
If Combo2.ListIndex = -1 Then
Combo2.ListIndex = 0
End If
If Combo1.ListIndex = 0 Then
Campo = "IdBloque"
ElseIf Combo1.ListIndex = 1 Then
Campo = "Tipo_Goma"
ElseIf Combo1.ListIndex = 2 Then
Campo = "Referencia"
End If
Select Case Combo2.ListIndex
Case 0: OrderByCampo = "IdBloque"
Case 1: OrderByCampo = "Tipo_Goma"
Case 2: OrderByCampo = "Referencia"
Case 3: OrderByCampo = "Fecha"
End Select
If CmdOrdenar(0).Value Then Orden = "asc"
If CmdOrdenar(1).Value Then Orden = "desc"
' si el recorset está abierto lo cierra
If RsPan.State = adStateOpen Then
RsPan.Close
End If
sql = "SELECT * FROM Bloques Where " & _
Campo & " like '" & txtSearch & _
"%' order by " & OrderByCampo & " " & Orden
RsPan.Open sql, CnnPan, adOpenStatic, adLockOptimistic
Call CargarListViewPan(frmReg_Mant_Pan.LVPan, RsPan)
End Sub
en la tabla de access los campos que tengo son los siguientes:
IdBloque = Autonumerico
Tipo_Bloque = Texto
Referencia = Texto
Ancho = Numerico
Largo = Numerico
Altura_1 = Numerico
Altura_2 = Numerico
Descripcion = Texto
Pies_1 = Numerico
Pies_2 = Numerico
Existencia = Numerico
Fecha = Date
Estatus = Texto
Si me puedes ayudar te lo agradecería infinitamente.
Cualquier cosa me puedes responder a mi mail [email protected]
1 respuesta
Respuesta de Roberto Alvarado
1