Con todo y que estas nuevo, se nota un buen nivel de organización y conocimientos básicos de los métodos y propiedades del Modelo ADO. Por lo que valoro mucho eso y te animo a seguir probando estos casos:
- Prueba crear una rutina Errores para que pases a la siguiente línea de programa después de las líneas del DIM:
On Error GoTo AdoError
Luego, antes del final del SUB, coloca esto:
AdoError:
On Error Resume Next
LA línea anterior hará que error anterior no detenga el programa y pase a la siguiente línea después tbl. Open, que es:
If tbl.EOF = TRUE AND tbl.BOF = TRUE Then
2. Ahora, en esta línea: If tbl.EOF = TRUE AND tbl.BOF = TRUE Then, encuentré un error. Nunca podrá ser verdadera, porque es imposible que el cursor de datos esté al mismo tiempo al final "y" (AND) al principio del Recordset. Para llegar al final del Recordset o Tabla Tienes que usar tbl.MoveNext, para ir cambiando al siguiente registro.
3. Necesitas un ciclo para recorrer el resordset desde el principio BOF, hasta el final EOF
4. Para poner el cursor de datos al principio del Recordset usa:
Tbl. MoveFirst
5. Para recorrerlo usa un Bucle:
Tbl. MoveFirst
Do While Not tbl.EOF
If tbl.Item("ITEM") = txtitem.Text Then
MsgBox "Ya existe el producto"
Else
tbl.AddNew
' Aqui añades los nuevos valores del nuevo Registro
tbl.Update
End If
tbl.MoveNext
Loop
Bueno Jose Antonio, es todo lo que puedo hacer por ti. Espero que resuelvas el problema. Pero estoy casi seguro que con la rutina de captura de errores:
On Error GoTo AdoError
AdoError:
On Error Resume Next
Vas a salir de esa linea de error y entrar en otro, pero ya la habrás superado